我正在尝试执行“ docker-compose up ”命令。请在下面找到我的docker-compose文件。我尝试使用 network_mode:“主机” ,但是它不起作用。我在Linux OS上。请您让我知道我是否犯任何错误。
version: '3.6'
services:
mongo:
image: "mongo:latest"
container_name: ohif-mongo
ports:
- "27017:27017"
viewer:
image: ohif/viewer:latest
container_name: ohif-viewer
ports:
- "3030:80"
network_mode: "host" # please make note of the alignment
links:
- mongo
environment:
- MONGO_URL=mongodb://mongo:27017/ohif
extra_hosts:
- "pacsIP:172.xx.xxx.xxx"
volumes:
- ./dockersupport-app.json:/app/app.json
执行后,出现以下错误
ERROR: for 8f4c3de7e3a3_ohif-viewer Cannot create container for service viewer: conflicting options: host type networking can't be used with links. This would result in undefined behavior
ERROR: for viewer Cannot create container for service viewer: conflicting options: host type networking can't be used with links. This would result in undefined behavior
我不知道为什么错误消息会显示两次。不确定是否会这样
第二,当我更改network_mode的对齐方式时:“主机”(减1/2个空格)
ports:
- "3030:80"
network_mode: "host" # please see the change in alignment now
links:
- mongo
我收到以下错误消息
ERROR: yaml.parser.ParserError: while parsing a block mapping
in "./docker-compose.yml", line 10, column 5
expected <block end>, but found '<block mapping start>'
in "./docker-compose.yml", line 14, column 6
如何以网络=主机模式启动容器?
答案 0 :(得分:1)
来自docs:
network_mode:“主机”不能与链接混合。
警告:--link标志是Docker的旧功能。它最终可能会被删除。除非您绝对需要继续使用它,否则建议您使用用户定义的网络来促进两个容器之间的通信,而不要使用--link。用户定义的网络不支持您使用--link进行的一项功能是在容器之间共享环境变量。但是,您可以使用其他机制(例如卷)以更可控的方式在容器之间共享环境变量。
只需删除链接。不再需要它们。
答案 1 :(得分:1)
network_mode:host用于与Host共享相同的网络空间。例如,您可能想从conatiner访问在Linux PC上运行的应用程序。 如果要将服务链接在一起,则可以使用links或depends_on,并且如果服务位于不同的主机上,只需创建一个覆盖网络