Docker Compose同时使用主机网络和桥接网络

7

我有两个图像,我希望它们通过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_modenetworks
这样做不起作用:
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
1个回答

0
如果它们都在您的主机网络上,它们可以像普通应用程序之间的通信一样相互通信:通过本地主机。因此,您根本不需要桥接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接