在同一主机上的不同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/
布鲁斯