docker 网络
Docker支持5种网络模式
- bridge
默认网络,Docker启动后默认创建一个docker0网桥,默认创建的容器也是添加到这个网桥中。
- host
容器不会获得一个独立的network namespace,而是与宿主机共用一个。
- none
获取独立的network namespace,但不为容器进行任何网络配置。
- container
与指定的容器使用同一个network namespace,网卡配置也都是相同的。
-自定义
自定义网桥,默认与bridge网络一样。
Linux IP信息包过滤原理:
Docker主要通过netfilter/iptables实现网络通信。
iptables由netfilter和iptables组成,netfilter组件是Linux内核集成的信息包过滤系统,它维护一个信息包过滤表,这个表用于控制信息包过滤处理的规则集。而iptables只是一个在用户空间的工具,用于增删改查这个过滤表的规则。
容器访问外部
1 2 3 4
| # iptables -t nat -nL Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all --172.17.0.0/16 0.0.0.0/0
|
外部访问容器
1 2 3 4
| # iptables -t nat -nL Chain DOCKER (2 references) target prot opt source destination DNAT tcp --0.0.0.0/0 0.0.0.0/0 tcp dpt:88 to:172.18.0.2:80
|
容器访问外部原理