我在一个docker-compose文件中运行了两个不同的服务。我通过引用容器的服务名称与每个服务通信。
现在我想让我的容器A也访问localhost。当我添加'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都会创建一个网络,所以在这种情况下,我是否应该手动将容器分配给一个专用网络?或者,有没有办法同时访问这两个网络?
发布于 2019-07-04 16:09:13
尝试添加
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