OCI 發布容器運行時和鏡像格式規範 V1.0
7 月 19 日是 開放容器計劃 (OCI)的一個重要里程碑,OCI 發布了容器運行時和鏡像規範的 1.0 版本,而 Docker 在這過去兩年中一直充當著推動和引領的核心角色。我們的目標是為社區、客戶以及更廣泛的容器行業提供底層的標準。要了解這一里程碑的意義,我們先來看看 Docker 在開發容器技術行業標準方面的成長和發展歷史。
Docker 將運行時和鏡像捐贈給 OCI 的歷史回顧
Docker 的鏡像格式和容器運行時在 2013 年作為開源項目發布後,迅速成為事實上的標準。我們認識到將其轉交給中立管理機構管理,以加強創新和防止行業碎片化的重要性。我們與廣泛的容器技術人員和行業領導者合作,成立了 開放容器項目 來制定了一套容器標準,並在 Linux 基金會的支持下,於 2015 年 6 月在 Docker 大會 上推出。最終在那個夏天演變成為 開放容器計劃 (OCI)。
Docker 貢獻了 runc ,這是從 Docker 員工 Michael Crosby 的 libcontainer 項目中發展而來的容器運行時參考實現。 runc 是描述容器生命周期和運行時行為的運行時規範的基礎。runc 被用在數千萬個節點的生產環境中,這比任何其它代碼庫都要大一個數量級。runc 已經成為運行時規範的參考實現,並且隨著項目的進展而不斷發展。
在運行時規範制定工作開始近一年後,我們組建了一個新的工作組來制定鏡像格式的規範。 Docker 將 Docker V2 鏡像格式捐贈給 OCI 作為鏡像規範的基礎。通過這次捐贈,OCI 定義了構成容器鏡像的數據結構(原始鏡像)。定義容器鏡像格式是一個至關重要的步驟,但它需要一個像 Docker 這樣的平台通過定義和提供構建、管理和發布鏡像的工具來實現它的價值。 例如,Dockerfile 等內容並不包括在 OCI 規範中。
開放容器標準化之旅
這個規範已經持續開發了兩年。隨著代碼的重構,更小型的項目已經從 runc 參考實現中脫穎而出,並支持即將發布的認證測試工具。
有關 Docker 參與塑造 OCI 的詳細信息,請參閱上面的時間軸,其中包括:創建 runc ,和社區一起更新、迭代運行時規範,創建 containerd 以便於將 runc 集成到 Docker 1.11 中,將 Docker V2 鏡像格式貢獻給 OCI 作為鏡像格式規範的基礎,並在 containerd 中實現該規範,使得該核心容器運行時同時涵蓋了運行時和鏡像格式標準,最後將 containerd 捐贈給了 雲計算基金會 (CNCF),並於本月發布了更新的 1.0 alpha 版本。
維護者 Michael Crosby 和 Stephen Day 引導了這些規範的發展,並且為 v1.0 版本的實現提供了極大的幫助,另外 Alexander Morozov,Josh Hawn,Derek McGown 和 Aaron Lehmann 也貢獻了代碼,以及 Stephen Walli 參加了認證工作組。
Docker 仍然致力於推動容器標準化進程,在每個人都認可的層面建立起堅實的基礎,使整個容器行業能夠在依舊十分差異化的層面上進行創新。
開放標準只是一小塊拼圖
Docker 是一個完整的平台,用於創建、管理、保護和編排容器以及鏡像。該項目的願景始終是致力於成為支持開源組件的行業規範的基石,或著是容器解決方案的校準鉛錘。Docker 平台正位於此層之上 -- 為客戶提供從開發到生產的安全的容器管理解決方案。
OCI 運行時和鏡像規範成為一個可靠的標準基礎,允許和鼓勵多樣化的容器解決方案,同時它們不限制產品創新或遏制主要開發者。打一個比方,TCP/IP、HTTP 和 HTML 成為過去 25 年來建立萬維網的可靠標準,其他公司可以繼續通過這些標準的新工具、技術和瀏覽器進行創新。 OCI 規範也為容器解決方案提供了類似的規範基礎。
開源項目也在為產品開發提供組件方面發揮著作用。containerd 項目就使用了 OCI 的 runc 參考實現,它負責鏡像的傳輸和存儲,容器運行和監控,以及支持存儲和網路附件的等底層功能。containerd 項目已經被 Docker 捐贈給了 CNCF ,與其他重要項目一起支持雲計算解決方案。
Docker 使用了 containerd 和其它自己的核心開源基礎設施組件,如 LinuxKit,InfraKit 和 Notary 等項目來構建和保護 Docker 社區版容器解決方案。正在尋找一個能提供容器管理、安全性、編排、網路和更多功能的完整容器平台的用戶和組織可以了解下 Docker Enterprise Edition 。
這張圖強調了 OCI 規範提供了一個由容器運行時實現的標準層:containerd 和 runc。 要組裝一個完整的像 Docker 這樣具有完整容器生命周期和工作流程的容器平台,需要和許多其他的組件集成在一起:管理基礎架構的 InfraKit,提供操作系統的 LinuxKit,交付編排的 SwarmKit,確保安全性的 Notary。
OCI 下一步該幹什麼
隨著運行時和鏡像規範的發布,我們應該慶祝開發者的努力。開放容器計劃的下一個關鍵工作是提供認證計劃,以驗證實現者的產品和項目確實符合運行時和鏡像規範。認證工作組 已經組織了一個程序,結合了 開發套件 的運行時和鏡像規範測試工具將展示產品應該如何參照標準進行實現。
同時,當前規範的開發者們正在考慮下一個最重要的容器技術領域。雲計算基金會的通用容器網路介面開發工作已經正在進行中,支持鏡像簽署和分發的工作正也在 OCI 的考慮之中。
除了 OCI 及其成員,Docker 仍然致力於推進容器技術的標準化。 OCI 的使命是為用戶和公司提供在開發者工具、鏡像分發、容器編排、安全、監控和管理等方面進行創新的基準。Docker 將繼續引領創新,不僅提供提高生產力和效率的工具,而且還通過授權用戶,合作夥伴和客戶進行創新。
在 Docker 學習更過關於 OCI 和開源的信息:
- 閱讀 OCI 規範的誤區
- 訪問 開放容器計劃的網站
- 訪問 Moby 項目網站
- 參加 DockerCon Europe 2017
- 參加 Moby Summit LA
(題圖:vox-cdn.com)
作者簡介:
Patrick Chanezon 是 Docker Inc. 技術人員。他的工作是幫助構建 Docker 。一個程序員和講故事的人 (storyller),他在 Netscape 和 Sun 工作了10年的時間,又在Google,VMware 和微軟工作了10年。他的主要職業興趣是為這些奇特的雙邊市場「平台」建立和推動網路效應。他曾在門戶網站,廣告,電商,社交,Web,分散式應用和雲平台上工作過。有關更多信息,請訪問 linkedin.com/in/chanezon 和他的推特 @chanezon。
via: https://blog.docker.com/2017/07/oci-release-of-v1-0-runtime-and-image-format-specifications/
作者:Patrick Chanezon 譯者:rieonke 校對:校對者ID
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive