我有两个图像,我想通过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
如果它们都在您的主机网络上,它们可以像普通应用程序一样相互通信:通过localhost。所以你根本不需要那座桥。