《容器訪問外部世界:》
原理:NAT地址轉換
1.物理機可以連接外網
2.docker run -it busybox
ip a
容器可以訪問外網
3.查看iptables策略,了解策略原理
iptables -t nat -s
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
收到來自這個網段的包,把它交給MASQUERADE,然后它將包的源地址替換成host主機的地址發送出去,就是做了一次網絡源地址轉換(NAT)
4.開啟一個終端運行,監控docker0網卡:
tcpdump -i docker0 -n icmp
5.在另一個終端:
進容器ping百度
docker run -it busybox
ping www.baidu.com
結果,發現容器的IP地址交給了MASQUERADE處理
6.結束上一個終端,運行監控物理機網卡
tcpdump -i ens33 -n icmp
發現已經將容器的地址進行轉換了,成了物理機的IP地址。