Docker開源容器運行時組件Containerd
不久前,Docker 宣布開源他們的容器運行時組件 Containerd(發音是 container-D)。目前的 Containerd 版本是 0.2.4,Docker 計劃在 2017 年第二季度基于 Open Container Initiative(OCI)發布 1.0 版本。
Containerd 是一個容器運行時組件,它原本是 Docker 平臺的一部分,雖然小巧,但在整個系統里起到很關鍵的作用。Containerd 被設計成一種低耦合并且很容易與其它工具集成的組件。它在 Docker 1.12 里所處的位置如下圖所示:
從圖中可以看出,Containerd 提供了一組運行容器的 API。Docker 引擎通過調用 GRPC API 來啟動執行進程,隨后會啟動管理器和執行器來負責監控和運行容器。容器最后通過 runC 來運行,runC 也是 Docker 的另一個開源項目,它實現了 OCI 運行時標準。
計劃中的 Containerd 1.0 版本將會有所變化,它在 Docker 中的位置將會是如下圖所示的樣子:
新版的 Containerd 將包含如下特性:
- 一個分布式的組件,它負責處理到注冊中心的推送,無需與特定廠商關聯。
- 一組網絡原語,用來創建系統接口和 API,以便管理容器的網絡命名空間。
- 主機級別的鏡像和容器文件系統存儲。
- 一組 GRPC API。
- Prometheus 格式的度量指標 API,用在內部和容器級別的度量指標上。
- 完全支持 OCI 鏡像和 runC 的參考實現。
關于 Containerd 的更多架構細節可以參看 GitHub 主頁的內容。
Containerd 是 Docker 開源的眾多項目中的新成員,這些項目包括 libcontainer、libnetwork、notary、runC、HyperKit、V*Nkit、Datakit、swarmkit 和 Infrakit 等。
此次開源 Containerd,Docker 是希望能夠與廣大社區和其它各大廠商巨頭共同構建一個雙贏的結果。正如 Docker CTO Solomon Hykes 所說的那樣,“我們迫不及待地要把這個東西貢獻出來,因為我們也會因此獲得很好的回報,這是一種良性的回饋閉環,這個閉環里的各方都會從中受益”。基于 Containerd,企業可以構建自己的容器管理軟件。目前,阿里巴巴、Amazon、Google、Microsoft 和 IBM 等公司的員工已經加入到該項目的貢獻者行列。而隨著該項目的不斷完善,Docker 也將因此得到好處。
為了避免 Containerd 與 Docker 或其它商業實體存在關聯,Docke 計劃明年把 Containerd 獨立出來,并交由中立基金進行管理。
來自: InfoQ