docker容器间网络通信

我们都知道,同主机同网络下的容器可以通过容器的网桥来进行通信,但是不同网络的容器不能通信。原因是什么呢?
参考 http://blog.csdn.net/CloudMan6/article/details/73825691 这个帖子,我自己做了实验,记录一下

查看主机ip转发是否开启 sysctl net.ipv4.ip_forward。既然已经开启,且各个网桥都连接在主机上,为什么不能ping通 ?
我们看一下ip 的设置
这里写图片描述

可以看到
172.17.0.0/16 对应docker0
172.22.16.0/24 对应 br-31420d31f051

查看iptables的设置
这里写图片描述

发现iptables会把docker0和br-31420d31f051两个网段的流量drop掉,所以两个网段无法通信。

一般我们可以通过为容器配置网卡的方式把容器加入另一个网段,这样就可以互相通信。
执行docker network connect network_name containerID

这里写图片描述

此时进入容器,发现容器有两个虚拟网卡,即对应两个ip地址
这里写图片描述

此时容器ping通

盗图一张,来自http://blog.csdn.net/CloudMan6/article/details/73825691 这个帖子
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值