1.docker的bridge网络模式会在容器内部创建独立的网络命名空间,ip命令可以看到lo与eth0网卡
2.不同网络命名空间通信使用veth,veth0位于宿主机上,veth1位于容器内部,veth1就是容器内的eth0
3.veth0桥接至宿主机的docker0网卡上,达到容器内部的包可以发到docker0上
4.宿主机上开启ipv4_forward功能,实现宿主机上不同网卡建互相转发数据包,从而实现docker0上的数据包转发到宿主机真实物理网卡上
5.在宿主机上设置ip伪装防火墙规则,修改源地址为宿主机物理网卡(未修改前为容器内部网卡地址,此时接收者无法根据容器内部网卡地址做路由选址,所以必须修改)
6.宿主机物理网卡路由寻址将数据包发往目的主机
有疑问加站长微信联系(非本文作者)