两个挂载在my_net2上的容器走的同一个网关,肯定能通信
网络my_net2 与 默认网桥docker0之间不通,因为:
172.17.0.0/16 和 172.22.16.0/24 两个网络的路由都定义好了。再看看 ip forwarding:
ip forwarding 也已经启用了。
条件都满足,为什么不能通行呢?
我们还得看看 iptables:
原因就在这里了:iptables DROP 掉了网桥 docker0 与 br-5d863e9f78b6 之间双向的流量。
从规则的命名 DOCKER-ISOLATION 可知 docker 在设计上就是要隔离不同的 netwrok。
那么接下来的问题是:怎样才能让 busybox 与 httpd 通信呢?
答案是:为 httpd 容器(挂载到默认网桥docker0的容器)添加一块 net_my2 的网卡。这个可以通过docker network connect 命令实现。
|
|
这样,容器2b668e52480e内部就会多出一块网卡分配了my_net2的ip,就能与my_net2通信了。
前网络结构如图所示:
转自:容器之间连通