如何在Docker-Compose中一起使用主机networking和其他用户定义的networking?

我想连接Docker-Compose文件中定义的两个Docker容器( appdb )。 其中一个( app )也应该连接到hostnetworking。

容器应该连接到一个通用的用户定义networking( appnetdefault ),以使用appnetnetworking中的embedded式DNSfunction。

app还需要直接连接到主机networking,以便在Docker主机的物理networking中接收以太网广播(networking层2)。

如果我同时使用指令network_mode: hostnetworks组合在一起,我得到以下错误。

ERROR: 'network_mode' and 'networks' cannot be combined

所以我只能用networks做这个!

 version: "3.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: hostnet: external: name: host 

前面的撰写文件产生一个错误。 ERROR: for app network-scoped alias is supported only for containers in user defined networks

如果我在服务中使用networking名称host而不在networking中定义它(因为它已经存在),它说。 ERROR: Service "app" uses an undefined network "host"

如何在Docker-Compose中一起使用hostnetworking和其他用户定义的networking(或默认)?

我使用的是Docker version 17.11.0-ce-rc3, build 5b4af4fDocker version 17.11.0-ce-rc3, build 5b4af4f docker-compose version 1.17.1, build 6d101fb