Docker,在不同网桥上的主机之间进行通信

时间:2017-04-29 14:29:00

标签: docker docker-compose docker-networking

我的情况:

  • 我在默认网桥(172.17.0.1/16)上有一个容器(container_A)
  • 我有一组容器 - 通过docker-compose创建 - 在另一个桥上(172.18.0.1/16)。其中一个名为container_B_1(ip:172.18.0.2)

默认情况下,我无法从container_A ping到container_B_1

问题:如何从默认桥接网络访问特定容器(container_B_1)?换句话说:让它拥有172.17.0.x IP(在172.18.0.x IP旁边)。就是那个容器。

我在docker-compose.yml

中试过这个

enter image description here

但是,gettting错误:“仅支持用户定义网络中的容器的网络范围别名”

enter image description here

谢谢!

3 个答案:

答案 0 :(得分:2)

为了保持相同的IP系列,我遇到了同样的问题,并找到了这个解决方案。

包含 network_mode: bridge 在您的撰写文件中的每个服务下。

这样您就不必创建自定义网络了。

答案 1 :(得分:1)

您可以创建自己的网络并在撰写文件中指定它:

  • 创建自己的网络: docker network create --driver bridge my_dev_network 您可以通过docker network ls

  • 进行验证
  • 在两个容器(容器A)和另一组容器的docker-compose.yml中,指定刚刚创建的网络:

network

您可以docker network inspect my_dev_network验证所有容器是否已加入您自己的网络

答案 2 :(得分:0)

在这里找到答案:https://github.com/docker/compose/issues/3012

2016年5月16日来自ninchan8328的评论:

  

我想通了,我可以让docker-compose在自定义网络中启动容器,然后做一个docker network connect bridge [container]来加入默认网络。