容器网络概念
- 首先了解下linux的网络构成概念
-
命名空间
: Linux在网络栈中引入网络命名空间,将独立的网络协议栈隔离到不同的命令空间中,彼此间无法通信;Docker利用这一特性,实现不容器间的网络隔离。 -
Veth设备对
:实现不同命名空间通信 -
Iptables/Netfilter
: Iptables/Netfilter:Netfilter负责在内核中执行各种挂接的规则(过滤、修改、丢弃等),运行在内核模式中;Iptables模式是在用户模式下运行的进程,负责协助维护内核中Netfilter的各种规则表;通过二者的配合来实现整个Linux网络协议栈中灵活的数据包处理机制。 -
网桥
:网桥是一个二层网络设备,通过网桥可以将linux支持的不同的端口连接起来,并实现类似交换机那样的多对多的通信 -
路由
:Linux系统包含一个完整的路由功能,当IP层在处理数据发送或转发的时候,会使用路由表来决定发往哪里。
- 运行Docker容器默认使用的是bridge网络,Docker还包含其他网络模型,容器网络模型主要包含了3个概念
- network: 网络模型
- 单主机网络模式(none、host、bridge,joined container)
- 多主机网络模式(overlay、macvlan、flannel)
- sandbox:沙盒,它定义了