容器的连通性
(0)当前的拓扑结构如下
(1)同一网络下的容器可以互通,不同网络下的容器互不相通
例如: 172.20.22.6和172.20.22.58 都在my_net2下是互通的
172.17.0.2在docker0下和172.20.22.2在my_net2下是不通的
(2)不同网络下的容器想通信
1、前提:
检查 Docker host 的路由转发功能
ip r 查看 host 上的路由表:
路由表是有的,两个网络的路由都定义好了。
再查看 ip forwarding:
sysctl net.ipv4.ip_forward
查看iptables
iptables-save
网桥之间的通信是 DROP的。
从规则的命名 DOCKER-ISOLATION 可知 docker 在设计上就是要隔离不同的 netwrok。
2、实现
使两个容器属于相同的网络,为httpd增加一块my_net2的网卡,通过docker network connect 命令实现。
容器中增加了一个网卡 eth1,分配了 my_net2 的 IP 172.20.22.2。现在 busybox 应该能够访问 httpd 了
当前网络结构如图所示:
----------------------------------------------------引用来自-----------------------------------------------------------------
https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587690&idx=1&sn=770e7bbd74377f84bd5e8ee0f42ca194&chksm=8d3080f3ba4709e5f3a8fe9b666a5db5b246746271952828eed2d6d34cb19076d5cde2aeb6a7&scene=21#wechat_redirect