我正在构建包含两个容器的 docker-compose 服务。其中一个容器(node)旨在支持自动发现机制,并且需要成为主机 LAN 的一部分(因为我需要由 LAN 路由器而不是内置 docker 路由器处理多播 UDP 包)。
虽然 docker-compose.yml 中的“network_mode:host”完美地解决了这个问题,但我需要通过默认的docker -compose 网络(例如:http:/ /节点:37326)。如果 network_mode 设置为“host”,这似乎是不可能的。
我的 docker-compose.yml 目前看起来像这样:
version: '3.7'
services:
qtcore:
image: yansidorovtesseris/qtcore
build: .
container_name: qtcore
depends_on:
- node
env_file: defaults.env
ports:
- "8000:8000"
node:
image: yansidorovtesseris/komodo
container_name: node
env_file: node.env
ports:
- "37326:37326"
- "1900:1900"
network_mode: host
volumes:
- $HOME/node_state:/komodo/.komodo/$AC_NAME
Run Code Online (Sandbox Code Playgroud)
我尝试使用 docker-compose 文档 ( https://docs.docker.com/compose/compose-file/#host-or-none ) 中的示例将主机网络连接为外部网络。考虑将主机和默认网络添加到服务中。
version: '3.7'
services:
node:
...
networks:
hostnet: {}
...
networks:
hostnet:
external: true …Run Code Online (Sandbox Code Playgroud)