网站首页 > 精选文章 / 正文
docker 容器通常是网桥的模式,容器通过veth网卡对连接到网桥,veth网卡对可以理解成一个管道。一端连接网桥,一端连接到容器里面,这样容器出去的流量就可以进入网桥了。
当进入网桥后毕竟还是主机上,这个容器内部IP如何和外部通信呢?由于外部网络无法识别内部IP,所以需要将内部IP映射成宿主机的IP。还记得之前的文章介绍了SNAT原理嘛。这里Docker也是通过SNAT,将容器IP映射成主机IP。
可以看到容器出去 172.16.1.8 的源IP,在第2步被修改成主机的 10.0.0.1 后,发送到外部网络,然后返回的数据包的目的IP 就是 10.0.0.1 ,经过第4 步,反向SNAT ,将目的IP 10.0.0.1 再改成172.16.1.8,发送到容器里面。
我们可以看到docker的实现,通过iptables 的MASQ(动态SNAT) 实现。
-A POSTROUTING -s 172.16.0.0/16 ! -o docker0 -j MASQUERADE
Tags:docker查看容器详细信息
猜你喜欢
- 2024-12-04 Docker容器最全详解(万字图文总结)
- 2024-12-04 Docker容器间网络互联原理,讲不明白算我输
- 2024-12-04 Docker、Podman 容器"扫盲"
- 2024-12-04 docker windows环境下通过IP访问容器内服务的方法
- 2024-12-04 Docker学习11 容器原理 Network Namespace每天几分钟进步一点点
- 2024-12-04 Docker从入门到精通:Docker 容器数据卷详解
- 2024-12-04 docker --net=host获取容器IP,报错VM-XX:Name or Service not known
- 2024-12-04 Docker查看log的几个常用命令
- 2024-12-04 docker开启容器后,修改配置文件解决忘记映射端口号问题
- 2024-12-04 Docker容器最全详解(图文全面总结)