Tag: 泊坞窗

无法连接在docker中运行的Kafka

我在docker compose yml文件中为广告的侦听器configuration了下面的configuration 我的docker-compose.yml version: '2' services: zookeeper: image: confluentinc/cp-zookeeper:latest network_mode: host environment: ZOOKEEPER_CLIENT_PORT: 32181 ZOOKEEPER_TICK_TIME: 2000 extra_hosts: – "moby:127.0.0.1" kafka: image: confluentinc/cp-kafka:latest network_mode: host depends_on: – zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: localhost:32181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://lnc52c9:29092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 extra_hosts: – "moby:127.0.0.1" 我使用下面的属性连接这个kafka props.put("bootstrap.servers", "lnc52c9:29092"); 当我尝试在该服务器中产生消息时,我收到下面的错误 警告o.apache.kafka.clients.NetworkClient – 使用关联ID 1获取元数据时出错:{foo = LEADER_NOT_AVAILABLE} 主机可以从我的机器ping通,因为它们都在同一个networking中,没有防火墙问题。 当我在docker容器中使用命令hostname ,我可以看到相同的主机名。 我错过了什么吗?

Docker – 分享UFS数据

我喜欢将数据分离到数据容器中,并将应用程序保存在“应用程序容器”中的各种原因。 但是,似乎要在容器之间共享数据,则需要使用不在UFS中的卷,因此不会存储在您对数据容器执行的任何提交中。 这被广告作为一个优势,由于较低的开销,但有不能通过提交使用快照的主要缺点。 有没有办法强制在UFS内容量? 或者,也许有一种解决方法可以在不使用卷的情况下共享容器中的数据。 这两种情况都意味着我可以拍摄数据(这也意味着快照是增量式的,这是额外的好处)。 现在,我所能想到的就是试图通过NFS导出在数据容器中装载数据。

Docker只读套接字卷

对docker工人来说并不陌生,并且正在倾听这里给出的谈话 (相关部分从14:40到大约16:00)。 相关部分讨论了为套接字使用只读卷与MySQL服务器进行通信。 他介绍的情况是,它阻止了被黑客入侵的服务器删除了MySQL套接字。 我只是无法理解这意味着要处理什么安全威胁。 他说,黑客所能做的就是“select我的电子邮件地址”(可能意味着他可以访问所有的数据)。 这不是一个巨大的安全漏洞? 其次,这种方法比使用TCP / IP进行连接的优点是什么? 这是否仅仅是因为你不必在你的容器中暴露该端口? 根据我的理解,它提供的唯一安全性是防止它们从只读服务器中删除unix域套接字。 如果这种情况发生,从安全的angular度来看,这实际上是一个大问题吗?

Docker运行时间统计(基准)

我知道周围有很多docker专家,但是我花了相当多的时间来找出一些事实,并且了解了Docker的运行时间性能,但不幸的是我没有得到任何具体的答案。 让我开始告诉你我的系统的configuration: (a)在具有48GB内存,1TB光盘和12核心CPU的机器上运行CentOS 6.5。 (b)我build立了一个大小差不多6.5GB的Docker镜像 下面是一些问题,如果有人可以为读者的利益回答: (a)现在使用给定的configuration,问题是我可以并行运行多less个容器而不中断任何function? (b)假设我有两张3.5GB大小的图像,那么是否build议运行多张小图像,或者大图像性能好? (c)什么是与Docker一起使用的最佳文件系统选项? 编辑:更多信息 (d)其实我试图把许多编译器放在一个容器中,并试图让用户在线编译他们的语言。 这个工具正在开发中,将取代我现有的网站compileonlone.com。 事情进展良好,我build立了两个图像,每个编译器都很less。 我能够成功运行250个容器,之后我开始打开太多的文件。 在250个容器之后,我的RAM达到了40GB,CPU利用率约为50%。 我面临的主要问题是拆除旧的容器。 因为用户会来编译他的代码,然后会消失,所以我需要在一段时间后删除那些容器,但是当我试图通过使用docker rm -v来移除这些停止的容器时,它会减慢主docker进程,它几乎挂着。 我的意思是在/var/run/docker.sock中监听的docker -d守护进程。 不知道是否有任何其他的方式来清理这些容器或我有一个错误。 这里是Docker的细节: # docker info Containers: 1016 Images: 41 Storage Driver: devicemapper Pool Name: docker-0:20-258-pool Pool Blocksize: 64 Kb Data file: /var/lib/docker/devicemapper/devicemapper/data Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata Data Space Used: 17820.7 Mb Data Space Total: 102400.0 […]

在Docker中运行PostgreSql

我有以下configuration行: RUN sudo apt-get -y install postgresql USER postgres RUN /etc/init.d/postgresql start &&\ psql –command "CREATE USER test WITH SUPERUSER PASSWORD 'test';" &&\ createdb -O test test EXPOSE 5432 CMD ["mono", "src/Rest.Api/bin/Debug/Rest.Api.exe"] 但是,运行最后的命令来启动我的API产生这样的: setting listen on Failed to establish a connection to 'localhost'. at Npgsql.NpgsqlClosedState.Open (Npgsql.NpgsqlConnector context, Int32 timeout) [0x00000] in <filename unknown>:0 at Npgsql.NpgsqlConnector.Open […]

Docker容器中的MongoDB运行日志空间不足

我正在使用Docker作为Windows上的VirtualBox虚拟机中的testing环境。 让MongoDB容器用完磁盘空间不会是一个问题,如果删除并重新创build容器解决了问题,但事实并非如此。 我怎样才能得到这个空间? 现在我正在销毁VirtualBox虚拟机并重build它来恢复,但这是漫长而痛苦的。 感谢您的关注。

如何显示在Docker容器中打开特定套接字的进程ID?

我在Ubuntu 14.04上安装了Docker 1.5,并从容器中执行ps -eaf来显示容器中的进程列表 但是当使用ss -lap或nestat – lp ss -lap时,我无法获得打开特定端口的进程的PID。 有没有办法解决这个问题,以便知道哪个PID在容器内打开了一个特定的端口?

ip地址为谷歌应用程序引擎节点jsdocker应用程序

这与这里的stackoverflow问题有关: 在GAE上运行Websocket,以及我在这里问的以前的问题: Google app引擎:docker自定义运行时容器的IP,node.js 。 根据第二个问题,我试图在生产google定制运行时nodejs环境中使用boot2docker参数部署一个mozilla的browserquest版本,如下所示: docker version Client version: 1.5.0 Client API version: 1.17 Go version (client): go1.4.1 Git commit (client): a8a31ef OS/Arch (client): darwin/amd64 Server version: 1.5.0 Server API version: 1.17 Go version (server): go1.4.1 Git commit (server): a8a31ef 我已经使用boot2docker ip地址在本地生产环境的沙盒副本中运行应用程序,并成功完成。 但是我不知道在部署到生产时应该使用什么IP地址。 我的应用程序位于http:// [appname] .appspot.com地址,但是我认为无法通过该域访问服务器; 我已经尝试ping我的应用程序,并使用该IP来configuration我的脚本,这是行不通的。 因此,我想知道是否有可能 在谷歌应用程序引擎自定义运行时部署强制docker容器有一个特定的IP地址,以便代码可以预先configuration它,或 使用类似jpettazo的pipe道项目 ,通过某种方式自动configuration部署时的容器的IP,然后当应用程序试图访问服务器(说一个人创build一个字符,并点击一个button启动游戏),它打电话给提供相关IP地址的function。

如何让Clojure Compojure应用程序通过Docker容器中的编译jar运行无头?

更新 :这个问题已经改变,因为最初的一组评论者留下了回应。 对任何混淆道歉。 这是我的代码库https://github.com/Integralist/spurious-clojure-example你可以用它作为我正在使用的例子。 请注意,上面的回购依赖于我还没有发布到Clojars的库(因为我还在testing它 – 因此打开了这个问题)。 你可以在这里看到库的源代码: https : //github.com/Integralist/spurious-clojure-aws-sdk-helper 我有一个用Compojure编写的“hello world”Clojurenetworking应用程序,当使用lein ring server lein run并lein run (因为我现在创build了一个-main函数),我工作的很好。 当编译成jar时,它也运行到一定程度,我运行java -jar app.jar 。 我现在的问题是,如果我尝试从Docker容器中运行默认的java -jar app.jar ,我得到以下错误告诉我… spurious-clojure-example is starting 2015-02-14 00:58:03.812:INFO:oejs.Server:jetty-7.xy-SNAPSHOT 2015-02-14 00:58:03.854:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 Started server on port 8080 Exception in thread "main" java.awt.HeadlessException: 我的代码目前正在使用一个-main函数就像这样… (ns spurious-clojure-example.repl (:use spurious-clojure-example.handler ring.server.standalone [ring.middleware file-info file]) (:gen-class)) […]

在龙卷风服务器上的OpenSSL错误

我configuration我的龙卷风服务器: ssl_options = { "certfile": os.path.join("/tls.crt"), "keyfile": os.path.join("/tls.key") } http = tornado.httpserver.HTTPServer(application, ssl_options=ssl_options) tls.crt和tls.key通配符为我的域,我成功地在我的堆栈中的另一个应用程序后面HAPROXY,后者终止TLS。 启动时的服务器报告OpenSSL版本: OpenSSL 1.0.1k 8 Jan 2015 浏览器 但是,当从浏览器(最终显示“此网页不可用”)获取/出现在Tornado STDOUT中时: [E 150228 15:05:52 ioloop:588] Exception in callback (<socket._socketobject object at 0x7ff342d37050>, <function null_wrapper at 0x7ff342d418c0>) Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/tornado/ioloop.py", line 840, in start handler_func(fd_obj, events) File "/usr/local/lib/python2.7/site-packages/tornado/stack_context.py", line 275, […]