伴随着Docker公司的容器技術生态在雲計算市場中站穩了腳跟,圍繞着Docker項目進行的各個層次的內建與創新産品,也如雨後春筍般出現在這個新興市場當中。
而Docker公司,不失時機地釋出了Docker Compose、Swarm和Machine“三件套”,在重定義PaaS走出了最關鍵的一步。
這段時間大量圍繞着Docker項目的網絡、存儲、監控、CI/CD,甚至UI項目紛紛出台,湧現出如Rancher、Tutum這樣在開源與商業上均取得了巨大成功的創業公司。
2014~2015年間,容器社群真是熱鬧非凡。
繁榮背後,更多擔憂,即對Docker公司商業化戰略的種種顧慮。
Docker項目此時已經成為Docker公司一個商業産品。而開源,隻是Docker公司吸引開發者群體的一個重要手段。
不過這麼多年來,開源社群的商業化其實都是類似的思路,無非是高不高調、心不心急的問題罷了。
真正令大多數人不滿意的是Docker公司在Docker開源項目的發展上,始終保持絕對權威,并在多場合挑戰其他玩家(CoreOS、RedHat,谷歌微軟)的切身利益。
其實在Docker項目剛剛興起時
Google也開源了一個在内部使用多年、經曆過生産環境驗證的Linux容器
1 lmctfy(Let Me Container That For You)

然而,面對Docker項目的強勢崛起,這個對使用者沒那麼友好的Google容器項目根本沒有招架之力。是以,知難而退的Google公司,向Docker公司表示了合作的願望:關停這個項目,和Docker公司共同推進一個中立的容器運作時(container runtime)庫作為Docker項目的核心依賴。
不過,Docker公司并沒有認同這個明顯會削弱自己地位的提議,還在不久後,自己釋出了一個容器運作時庫
2 Libcontainer
這次匆忙的、由一家主導的、并帶有戰略性考量的重構,成了Libcontainer被社群長期诟病代碼可讀性差、可維護性不強的一個重要原因。
至此,Docker公司在容器運作時層面上的強硬态度,以及Docker項目在高速疊代中表現出來的不穩定和頻繁變更的問題,開始讓社群叫苦不疊。
這種情緒在2015年達到了一個小高潮,容器領域的其他幾位玩家開始商議“切割”Docker項目的話語權 — 成立一個中立的基金會。
2015年6月22日,由Docker公司牽頭,CoreOS、Google、RedHat等公司共同宣布,Docker公司将Libcontainer捐出,并改名為
3 runc
交由一個完全中立的基金會管理,然後以runc為依據,大家共同制定一套容器和鏡像的标準和規範。
這套标準和規範,就是
4 OCI( Open Container Initiative )
OCI的提出,意在将容器運作時和鏡像的實作從Docker項目中完全剝離出來
- 一方面可以改善Docker公司在容器技術上一家獨大的現狀
- 另一方面也為其他玩家不依賴于Docker項目建構各自的平台層能力提供了可能
OCI更多是高端玩家出于自身利益一個妥協結果
盡管Docker是OCI的發起者和創始成員,卻很少在OCI的技術推進和标準制定等事務上扮演關鍵角色,也沒動力推進這些所謂标準。
這也是OCI組織效率持續低下的根本原因。
眼看着OCI無力改變Docker公司容器領域一家獨大現狀,Google和RedHat等第二把武器擺上了台面。
Docker之是以不擔心OCI威脅,就在于它的Docker項目是容器生态的事實标準,而它所維護的Docker社群也足夠龐大。
可是,一旦這場鬥争被轉移到容器之上的平台層,或者說PaaS層,Docker公司的競争優勢捉襟見肘
在這個領域裡,像Google和RedHat這樣的成熟公司,都擁有着深厚的技術積累
而像CoreOS這樣的創業公司,也擁有像Etcd這樣被廣泛使用的開源基礎設施項目。
可是Docker公司呢?它卻隻有一個Swarm。
是以這次,Google、RedHat等開源基礎設施領域玩家們,發起名為