Docker關鍵知識點兒彙總

容器

容器=cgroup+namespace+rootfs+容器引擎(用戶態工具)docker

  • Cgroup:資源控制。
  • Namespace:訪問隔離。
  • rootfs:文件系統隔離。
  • 容器引擎:生命週期控制。

容器兩個核心技術

NameSpace
Namespace又稱爲命名空間(也可翻譯爲名字空間),它是將內核的全局資源作封裝,使得每一個Namespace都有一份獨立的資源,所以不一樣的進程在各自的Namespace內對同一種資源的使用不會互相干擾。安全

  • IPC:隔離System V IPC和POSIX消息隊列。
  • Network:隔離網絡資源。
  • Mount:隔離文件系統掛載點。
  • PID:隔離進程ID。
  • UTS:隔離主機名和域名。
  • User:隔離用戶ID和組ID。

Cgroup
Cgroup是control group的簡寫,屬於Linux內核提供的一個特性,用於限制和隔離一組進程對系統資源的使用,也就是作資源QoS,這些資源主要包括CPU、內存、block I/O和網絡帶寬。網絡

  • devices:設備權限控制。
  • cpuset:分配指定的CPU和內存節點。
  • cpu:控制CPU佔用率。
  • cpuacct:統計CPU使用狀況。
  • memory:限制內存的使用上限。
  • freezer:凍結(暫停)Cgroup中的進程。
  • net_cls:配合tc(traffic controller)限制網絡帶寬。
  • net_prio:設置進程的網絡流量優先級。
  • huge_tlb:限制HugeTLB的使用。
  • perf_event:容許Perf工具基於Cgroup分組作性能監測。

Docker五種網絡模式

None
不爲容器配置任何網絡功能。ide

Container
與另外一個運行中的容器共享NetworkNamespace,共享相同的網絡視圖。工具

Host
與主機共享Root Network Namespace,容器有完整的權限能夠操縱主機的協議棧、路由表和防火牆等,因此被認爲是不安全的。性能

Bridge
Docker設計的NAT網絡模型。
Docker網絡的初始化動做包括:建立docker0網橋、爲docker0網橋新建子網及路由、建立相應的iptables規則等。
Docker關鍵知識點兒彙總
在橋接模式下,Docker容器與Internet的通訊,以及不一樣容器之間的通訊,都是經過iptables規則控制的。
Overlay
Docker原生的跨主機多子網模型。
overlay網絡模型比較複雜,底層須要相似consul或etcd的KV存儲系統進行消息同步,核心是經過Linux網橋與vxlan隧道實現跨主機劃分子網。
Docker關鍵知識點兒彙總spa

相關文章
相關標籤/搜索