容器=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