天天看點

OCI,runC,containerd 是什麼?(部分轉載)

OCI在2015年6月宣布成立,旨在圍繞容器格式和運作時制定一個開放的工業化标準。OCI的目标是為了避免容器的生态分裂為“小生态王國”,確定一個引擎上建構的容器可以運作在其他引擎之上。這是實作容器可移植性至關重要的部分。隻要Docker是唯一的運作時,它就是事實上的行業标準。但是随着可用(和采納)和其他引擎,有必要從技術的角度上定義“什麼是容器”,以便不同實作上可以達成最終的一緻。

正如上面提到的,Docker引擎可以在runC和containerd上建構。1.11之前,引擎隻用于Volums,networks,containerd等。

現在它所有的工作分為四個部分:引擎,containerd,runC,containerd-shim,後者位于runC與containerd之間的部分。

Docker引擎仍然管理者images,然後移交給containerd運作,containerd再使用runC運作容器。

containerd隻處理containers管理容器的開始,停止,暫停和銷毀。由于容器運作時是孤立的引擎,引擎

最終能夠啟動和更新而無需重新啟動容器。還有一些其他的好處是:

當linux的代碼被删除和其他容器運作時的這些改變時能夠保持一種統一的Docker UI指令(表面上看一切都是一樣的)

由于現在有四個元件,以前隻是一個單獨的“docker”二進制檔案,現在查分各自功能為四個檔案: docker , docker-containerd ,

docker-containerd-shim ,和 docker-runc 。如果你在主機上,就可以通過 ps as grep docker 擷取正在運作的程序。

本文轉自銀狐部落格51CTO部落格,原文連結http://blog.51cto.com/foxhound/1834235如需轉載請自行聯系原作者

戰狐