在同一主机上的不同networking中的Docker容器之间进行通信

任何可能使容器在不同的networking在同一主机进行通信? 请注意,我目前没有使用docker撰写程序。

以下是我所做的一个总结。 我使用以下命令创build了两个networking

docker network create --driver bridge mynetwork1 docker network create --driver bridge mynetwork2 

然后我使用以下命令在每个创build的networking上运行两个容器:

 docker run --net=mynetwork1 -it name=mynet1container1 mycontainerimage docker run --net=mynetwork1 -it name=mynet1container2 mycontainerimage docker run --net=mynetwork2 -it name=mynet2container1 mycontainerimage docker run --net=mynetwork2 -it name=mynet2container2 mycontainerimage 

然后我使用创build的networking识别每个容器的IP地址

 docker network inspect mynetwork1 docker network inspect mynetwork2 

使用那些我能够在同一networking中的容器之间进行通信,但是我无法在networking之间的容器之间进行通信。 只有通过将容器添加到同一networking才能进行通信。

非常感谢…

问题

两个容器不能通信,因为不在同一个networking上。

解决schemea)

将一个容器连接到另一个networking覆盖层(这可能不符合您的限制)。

解决schemeb)

创build第三个networking,并将两个容器插入此networking。

如何

命令docker run接受只有一个选项--net ,你要做的是docker start容器,然后docker network connect到共享networking。


您正在寻找的答案在这里: https : //stackoverflow.com/a/34038381/5321002

根据Docker文档Containers can only communicate within networks but not across networks您可以将容器附加到两个networking,并且能够以这种方式进行通信。

编辑:虽然在这一点上,为什么有两个networking在首位。

这是链接:

https://docs.docker.com/engine/userguide/networking/dockernetworks/

布鲁斯