【发布时间】:2015-06-30 16:01:24
【问题描述】:
您好,我需要连接三个 docker 容器,以便它们可以一起工作。我把这三个容器称为
- 容器 1 - pga(端口 80 上的 apache 网络服务器)
- 容器 2 - 服务器(apache airavata 服务器在端口 8930)
- 容器 3 - 兔子(RabbitMQ 在端口 5672)
我已将 rabbitMQ 作为(容器 3)启动
docker run -i -d --name rabbit -p 15672:15672 -t rabbitmq:3-management
我已将服务器(容器 2)启动为
docker run -i -d --name server --link rabbit:rabbit --expose 8930 -t airavata_server /bin/bash
现在从服务器内部(容器 2)我可以在端口 5672 访问 rabbit(容器 3)。当我尝试时
nc -zv container_3_port 5672 表示连接成功。
到目前为止,我对通过链接的 docker 连接感到满意。 现在我创建了另一个容器 pga(container 1) as
docker run -i -d --name pga --link server:server -p 8080:80 -t psaha4/airavata_pga /bin/bash
当我尝试访问服务器(容器 2)的服务时,现在从新的 pga 容器内部说连接拒绝。
我已经从服务器内部验证了容器服务在 8930 端口上运行,它在创建容器时被暴露,但它仍然拒绝来自它所链接的其他容器的连接。
我在任何地方都找不到任何人描述的类似情况,也不知道如何调试。请帮我找出方法。
命令输出:docker exec server lsof -i :8930
exec: "lsof": $PATH 中找不到可执行文件 Cannot run exec command fb207d2fe5b902419c31cb8466bcee4ba551b097c39a7405824c320fcc67f5e2 in container 995b86032b0421c5199eb635bd65669b1aa93f96b60da4a49328050f7048197a: [8] System error: exec: "lsof": executable file not found in $PATH Error starting exec command in container fb207d2fe5b902419c31cb8466bcee4ba551b097c39a7405824c320fcc67f5e2: Cannot run exec command fb207d2fe5b902419c31cb8466bcee4ba551b097c39a7405824c320fcc67f5e2 in container 995b86032b0421c5199eb635bd65669b1aa93f96b60da4a49328050f7048197a: [8] System error: exec: "lsof": executable file not found in $PATH
【问题讨论】:
-
你能用
docker exec server lsof -i :8930的输出来编辑你的问题吗?