Docker,在不同网桥上的主机之间通信
Docker, communicating between hosts on different bridges
我的情况:
- 我在默认桥接网络 (172.17.0.1/16) 上有一个容器 (container_A)
- 我在另一座桥 (172.18.0.1/16) 上有一组容器——通过 docker-compose 创建。其中一个名为 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
中试过了
但是,出现错误:"Network-scoped alias is supported only for containers in user defined networks"
谢谢!
在这里找到答案:https://github.com/docker/compose/issues/3012
来自ninchan8328 2016年5月16日评论:
I figured out, i can have the docker-compose to start the container in a custom network and then do a docker network connect bridge [container] to join the default network that way.
您可以创建自己的网络并在撰写文件中指定它:
创建您自己的网络:
docker network create --driver bridge my_dev_network
你可以通过 docker network ls
来验证
在你的docker-compose.yml中为两个容器(容器A)和另一组容器指定你刚刚创建的网络:
你可以通过docker network inspect my_dev_network
验证是否所有的容器都加入了你自己的网络
为了保持相同的 IP 系列,我遇到了同样的问题,并找到了这个解决方案。
包括
network_mode: bridge
在撰写文件中的每个服务下。
这样您就不必创建自定义网络。
我的情况:
- 我在默认桥接网络 (172.17.0.1/16) 上有一个容器 (container_A)
- 我在另一座桥 (172.18.0.1/16) 上有一组容器——通过 docker-compose 创建。其中一个名为 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
中试过了但是,出现错误:"Network-scoped alias is supported only for containers in user defined networks"
谢谢!
在这里找到答案:https://github.com/docker/compose/issues/3012
来自ninchan8328 2016年5月16日评论:
I figured out, i can have the docker-compose to start the container in a custom network and then do a docker network connect bridge [container] to join the default network that way.
您可以创建自己的网络并在撰写文件中指定它:
创建您自己的网络:
docker network create --driver bridge my_dev_network
你可以通过docker network ls
来验证
在你的docker-compose.yml中为两个容器(容器A)和另一组容器指定你刚刚创建的网络:
你可以通过docker network inspect my_dev_network
验证是否所有的容器都加入了你自己的网络
为了保持相同的 IP 系列,我遇到了同样的问题,并找到了这个解决方案。
包括
network_mode: bridge
在撰写文件中的每个服务下。
这样您就不必创建自定义网络。