Docker 容器无法连接到另一个 docker 容器打开的端口
Docker container is unable to connect to port opened by another docker container
我有两个容器 运行ning:c1 和 c2。
C1 正在侦听端口 2181 并且
C2 正在连接到端口 2181
问题是 C2 无法连接到所述端口上的 C1,我不确定为什么。
当我 运行 连接到 C1 的代码不在容器中时,它工作正常。所以我知道 C1 是 运行ning 并且端口已正确公开。就在我将应用程序放入它自己的容器中时,端口不再可见。
我已经在 C2 中尝试了 lsof,但它没有被列出,这就解释了它失败的原因。
任何关于我下一步需要看哪里的线索都将不胜感激。
我使用的是docker-compose,所以默认情况下容器应该在同一个网络组中:
这是我的撰写文件:
version: '2'
services:
c1:
build: .
volumes:
- .:/code
depends_on:
- c2
c2:
image: jplock/zookeeper
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
在 C1 中,发起者正在使用 URI localhost:2181
如果你遇到这个post这可能会有所帮助。
使用 docker-compose,容器会设置一个与 docker compose 文件中的服务别名相匹配的主机名,请参阅此处的文档:
https://docs.docker.com/compose/networking/
修改报价以适应这个用例
Each container can now look up the hostname (i.e c2) and get back the appropriate container’s IP address. For example, c1 application code could connect to the URL //c2:2181.
我有两个容器 运行ning:c1 和 c2。
C1 正在侦听端口 2181 并且 C2 正在连接到端口 2181
问题是 C2 无法连接到所述端口上的 C1,我不确定为什么。
当我 运行 连接到 C1 的代码不在容器中时,它工作正常。所以我知道 C1 是 运行ning 并且端口已正确公开。就在我将应用程序放入它自己的容器中时,端口不再可见。
我已经在 C2 中尝试了 lsof,但它没有被列出,这就解释了它失败的原因。
任何关于我下一步需要看哪里的线索都将不胜感激。
我使用的是docker-compose,所以默认情况下容器应该在同一个网络组中:
这是我的撰写文件:
version: '2'
services:
c1:
build: .
volumes:
- .:/code
depends_on:
- c2
c2:
image: jplock/zookeeper
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
在 C1 中,发起者正在使用 URI localhost:2181
如果你遇到这个post这可能会有所帮助。
使用 docker-compose,容器会设置一个与 docker compose 文件中的服务别名相匹配的主机名,请参阅此处的文档:
https://docs.docker.com/compose/networking/
修改报价以适应这个用例
Each container can now look up the hostname (i.e c2) and get back the appropriate container’s IP address. For example, c1 application code could connect to the URL //c2:2181.