容器=cgroup+namespace+rootfs+容器引擎(用户态工具)docker
NameSpace
Namespace又称为命名空间(也可翻译为名字空间),它是将内核的全局资源作封装,使得每一个Namespace都有一份独立的资源,所以不一样的进程在各自的Namespace内对同一种资源的使用不会互相干扰。安全
Cgroup
Cgroup是control group的简写,属于Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用,也就是作资源QoS,这些资源主要包括CPU、内存、block I/O和网络带宽。网络
None
不为容器配置任何网络功能。ide
Container
与另外一个运行中的容器共享NetworkNamespace,共享相同的网络视图。工具
Host
与主机共享Root Network Namespace,容器有完整的权限能够操纵主机的协议栈、路由表和防火墙等,因此被认为是不安全的。性能
Bridge
Docker设计的NAT网络模型。
Docker网络的初始化动做包括:建立docker0网桥、为docker0网桥新建子网及路由、建立相应的iptables规则等。
在桥接模式下,Docker容器与Internet的通讯,以及不一样容器之间的通讯,都是经过iptables规则控制的。
Overlay
Docker原生的跨主机多子网模型。
overlay网络模型比较复杂,底层须要相似consul或etcd的KV存储系统进行消息同步,核心是经过Linux网桥与vxlan隧道实现跨主机划分子网。spa