【发布时间】:2018-04-28 10:13:47
【问题描述】:
我想将定义在 Docker-Compose 文件中的两个 Docker 容器相互连接(app 和 db)。其中之一(app)也应该连接到host 网络。
容器应连接到通用的用户定义网络(appnet 或 default)以使用 docker 网络中的嵌入式 DNS 功能。
app还需要直接连接到主机网络,才能在docker主机的物理网络中接收以太网广播(网络二层)。
在组合中同时使用network_mode: host 和networks 两个指令,会导致以下错误:
ERROR: 'network_mode' and 'networks' cannot be combined
在服务中指定网络名称host而不在网络中定义它(因为它已经存在),结果:
ERROR: Service "app" uses an undefined network "host"
下一次尝试:明确定义两个网络,不要在服务级别使用network_mode: host 属性。
version: '3'
services:
app:
build: .
image: app
container_name: app
environment:
- MONGODB_HOST=db
depends_on:
- db
networks:
- appnet
- hostnet
db:
image: 'mongo:latest'
container_name: db
networks:
- appnet
networks:
appnet: null
hostnet:
external:
name: host
上述撰写文件产生错误:
ERROR: for app network-scoped alias is supported only for containers in user defined networks
如何在 Docker-Compose 中同时使用host 网络和任何其他用户定义的网络(或默认网络)?
【问题讨论】:
标签: docker networking service docker-compose ethernet