我有两个图像,我希望它们通过Compose的默认桥接网络进行通信,但我也希望它们能够访问我的主机网络。
为了让这些图像在Compose的默认桥接网络中相互通信,我不需要做任何事情:
version: '3.4'
services:
hello:
image: hello-world
world:
image: hello-world
以上规范中,hello
服务可以通过使用DNS名称world
引用world
服务。
如果我想让hello
服务能够与我的主机网络进行交互,我可以在规范中添加network_mode: host
。
version: '3.4'
services:
hello:
image: hello-world
network_mode: host
world:
image: hello-world
这使得
hello
服务可以访问我的主机网络,但无法通过compose的内置DNS访问 world
。如何同时实现这两个功能?我尝试创建自定义网络,但自定义网络无法使用主机驱动程序,并且我不能同时使用
network_mode
和 networks
:这样做不起作用:
version: '3.4'
services:
hello:
image: hello-world
network_mode: host
networks:
- bridge
world:
image: hello-world
networks:
- bridge
networks:
test:
driver: bridge
$ docker-compose up
ERROR: 'network_mode' and 'networks' cannot be combined