Docker容器网络栈管理全解析
1. Docker容器网络基础
Docker容器之间能够相互ping通,也能访问外部网络。为实现外部访问,容器的端口会映射到主机端口。容器使用网络命名空间,创建第一个容器时,会为其创建新的网络命名空间。同时,会在容器和Linux桥之间创建一个虚拟以太网(vEthernet或vEth)链接,容器eth0端口发出的流量通过vEth接口到达桥,然后进行交换。
查看Linux桥的命令如下:
$ sudo brctl show
示例输出如下:
| bridge name | bridge id | STP enabled | interfaces |
| — | — | — | — |
| docker0 | 8000.56847afe9799 | no | veth44cb727 veth98c3700 |
将容器连接到外部世界时,主机上的iptables NAT表用于伪装所有外部连接,命令如下:
$ sudo iptables -t nat -L -n
示例输出片段:
Chain POSTROUTING (policy ACCEPT) target prot opt
source destination MASQUERADE all -- 172.17.0.0/16
!172.17.0.0/16
从外部世界访问容器时,端口映
超级会员免费看
订阅专栏 解锁全文
1446

被折叠的 条评论
为什么被折叠?



