Docker容器无法连接到另一个Docker容器打开的端口

我有两个容器运行:c1和c2。

C1正在监听端口2181,C2正在连接到端口2181

问题是C2无法连接到所述端口上的C1,我不知道为什么。

当我运行连接到C1不在容器中的代码时,它工作正常。 所以我知道C1正在运行,端口正确显示。 只是当我把应用程序放在自己的容器中时,端口不再可见。

我已经尝试了C2内的LSF,并没有列出,这是为什么它失败了。

任何线索我需要看下一个将不胜感激。

我正在使用docker-compose,因此默认情况下容器应该在同一个networking组中:

这是我的撰写文件:

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撰写文件中的服务别名匹配的主机名,请参阅文档:

https://docs.docker.com/compose/networking/

修改引用以适应此用例

每个容器现在可以查找主机名(例如c2)并取回适当的容器的IP地址。 例如,c1应用程序代码可以连接到URL // c2:2181。