理解docker容器网络

安装 docker 时会自动创建一个名叫 bridge 的 bridge network。

默认 docker 容器可以主动与外部世界建立连接(connection),但是外部世界不能连接至 docker 容器。每一个出去的连接看起来都来自于宿主机自己的 IP 地址之一,这多亏了 docker server 启动时在宿主机上创建的 iptables 伪装规则(masquerading rules):

1
2
3
4
5
6
$ sudo iptables -t nat -L -n
...
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0
...

这条规则允许 docker 容器与外部世界的 IP 地址建立连接。

0%