我在一个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 :
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
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