您好我需要连接三个泊坞容器,以便它们可以一起工作。我将这三个容器称为
我已经将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端口访问兔子(容器3)。当我尝试
nc -zv container_3_port 5672
它表示连接成功。
直到这一点,我对通过链接的docker连接感到满意。 现在我创建了另一个容器pga(容器1)
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中找不到可执行文件 无法在容器中运行exec命令fb207d2fe5b902419c31cb8466bcee4ba551b097c39a7405824c320fcc67f5e2:[8]系统错误:exec:" lsof":$ PATH中找不到可执行文件 在容器fb207d2fe5b902419c31cb8466bcee4ba551b097c39a7405824c320fcc67f5e2开始exec命令错误:不能在容器995b86032b0421c5199eb635bd65669b1aa93f96b60da4a49328050f7048197a运行exec命令fb207d2fe5b902419c31cb8466bcee4ba551b097c39a7405824c320fcc67f5e2:[8]系统错误:EXEC:" lsof的&#34 ;:可执行文件在$ PATH未发现
答案 0 :(得分:2)
注意:打算扩大这个范围,但我的孩子刚病了。我有机会解决调试问题。
您可能会发现使用docker-compose更容易,因为它允许您使用一个命令运行它们并将配置保持在源代码管理下。示例配置文件(来自my website)如下所示:
database:
build: database
env_file:
- database/.env
api:
build: api
command: /opt/server/dist/build/ILikeWhenItWorks/ILikeWhenItWorks
env_file:
- api/.env
links:
- database
tty:
false
volumes:
- /etc/ssl/certs/:/etc/ssl/certs/
- api:/opt/server/
webserver:
build: webserver
ports:
- "80:80"
- "443:443"
links:
- api
volumes_from:
- api
我发现这些文件非常易读且易于理解,它们基本上都说明了他们正在做的事情。您可以在my source code中看到它与周围目录结构的关系。