我在一个docker-compose文件中运行了两个不同的服务。我通过引用容器的服务名称来谈论每个服务。
现在,我希望我的容器A也访问本地主机。为此,当我添加“ network_mode = host”的配置时,但这会产生一个错误,指出容器A无法与容器B对话。
version: '2'
services:
rocketchat:
image: myimage
environment:
- MONGO_URL=mongodb://mongo:27017/dbname
depends_on:
- mongo
ports:
- 3000:3000
network_mode: host
mongo:
image: mongo:3.2
ports:
- 27017:27017
对于docker-compose的每个撰写文件,它都会创建一个网络,因此在这种情况下,我也应该手动将容器分配给专用网络吗?还是有访问这两个网络的解决方法?
答案 0 :(得分:1)
尝试添加links
:
version: '2'
services:
rocketchat:
image: myimage
environment:
- MONGO_URL=mongodb://mongo:27017/dbname
depends_on:
- mongo
ports:
- 3000:3000
links:
- mongo
#network_mode: host
mongo:
image: mongo:3.2
ports:
- 27017:27017
,如果您使用链接,则不需要network_mode: host
编辑-其他解决方案:
version: '2'
services:
rocketchat:
image: myimage
environment:
- MONGO_URL=mongodb://localhost:27017/dbname
depends_on:
- mongo
ports:
- 3000:3000
network_mode: host
mongo:
image: mongo:3.2
ports:
- 27017:27017
network_mode: host