Docker 引擎安全性
目錄
檢閱 Docker 安全性時,需要考慮四個主要方面
- 核心的內在安全性及其對命名空間和 cgroup 的支援
- Docker 精靈本身的攻擊面
- 容器設定檔中的漏洞,無論是預設情況下還是使用者自訂時
- 核心的「強化」安全功能,以及它們如何與容器互動
核心命名空間
Docker 容器與 LXC 容器非常相似,它們具有類似的安全功能。當您使用 docker run
啟動容器時,Docker 會在幕後為容器建立一組命名空間和控制群組。
命名空間提供第一種也是最直接的隔離形式。在容器內執行的處理程序無法看到,更無法影響在另一個容器或主機系統中執行的處理程序。
每個容器也都取得自己的網路堆疊,這表示容器無法取得對另一個容器或主機系統的通訊端或介面的特殊存取權。當然,如果主機系統已相應地設定,則容器可以透過其各自的網路介面彼此互動,就像它們可以與外部主機互動一樣。當您為容器指定公用埠或使用連結時,則允許容器之間的 IP 流量。它們可以互相 ping,傳送/接收 UDP 封包,並建立 TCP 連線,但如有必要,可以限制這些連線。從網路架構的角度來看,給定 Docker 主機上的所有容器都位於橋接介面上。這表示它們就像透過共用乙太網路交換器連線的實體機器一樣;不多也不少。
提供核心命名空間和私人網路的程式碼有多成熟?核心命名空間是在核心版本 2.6.15 和 2.6.26 之間引入的