一場清退,清不了Docker的頑疾!

51cto 發佈 2024-03-05T00:52:19.969911+00:00

作者 | 徐傑承Docker剛剛度過了非常糟糕的一周。3月15日,Docker對外宣布了其最新的付費訂閱計劃,並向所有Free Team的Docker Hub用戶發送了電子郵件,聲稱如果未在一個月內升級到付費團隊,那麼他們的帳戶將會被刪除。

作者 | 徐傑承

Docker剛剛度過了非常糟糕的一周。3月15日,Docker對外宣布了其最新的付費訂閱計劃,並向所有Free Team的Docker Hub用戶發送了電子郵件,聲稱如果未在一個月內升級到付費團隊,那麼他們的帳戶將會被刪除。

這在業界引起了軒然大波,鑑於來自多方組織的壓力,Docker很快便進行了公開道歉:「我們在宣布Docker免費團隊的終結方面做得很糟糕。」然而不出所料的是,這未能安撫用戶們激烈的情緒,大量用戶在對Docker這一行為進行批判的同時,也表示將放棄對Docker的使用與支持。

如今,無論是Docker始終未能解決的安全性問題,還是其早已千瘡百孔並仍在不斷惡化的生態環境,都在牽引著這頭曾經被稱為「矽谷寵兒」的「巨鯨」,慢慢游向一場無法避免的死區。

1、安全性頑疾難消

多年以來,Docker都是開發人員工具箱的重要組成部分,藉由Docker的幫助,開發者能夠以標準的方式構建、分發和部署應用程式。然而隨著容器技術的發展以及越來越廣泛的應用,Docker的安全性問題也變得越來越顯著,並成為了用戶逐漸拋棄Docker的一大核心理由。

由於Docker能夠有效減少代碼膨脹並提供更好的兼容性,因此其通常被用於代替虛擬機。也正是由於這一點,企業更加傾向於使用容器。但與虛擬機相比,Docker較低的隔離性勢必會給用戶帶來一些安全性方面的困擾。

虛擬機通過創建離散狀態機實現資源分配,每台計算機都有自己的作業系統,並通過虛擬機管理程序對其進行管理。在Docker中,這些容器構建在容器引擎之上,容器引擎則運行在主機作業系統的應用程式之中。此外,Linux中的chroot和cgroups等更新允許容器在資源劃分方面更接近虛擬機。

Docker能夠將這些特性打包成易於使用的服務,並添加圖像、Docker文件和Docker CLI等概念,它還使系統管理員能夠在伺服器上快速部署大量容器。但這會帶來一些安全隱患——系統管理員可以授予用戶在預先部署的架構上運行Docker容器的權限。

但在默認情況下,Docker會將根級權限授予用戶,而基於Linux的根級用戶訪問權限類似於Windows中的管理員訪問權限,但其功能更加強大。通過根級用戶訪問權限,攻擊者可以刪除整個文件系統,或將普通用戶提升為具有根級權限的用戶,並在沒有通知或警報的情況下安裝其他惡意軟體。

通過訪問不安全的Docker容器,攻擊者可以在獲得運行權限及訪問權限後輕鬆控制其中的代碼。這就意味著心懷不軌的攻擊者可以隨意控制非特權帳戶的權限,從而開啟一系列新的攻擊媒介。

諸如此類攻擊在Docker社區中並不新鮮,並且時至今日,攻擊者仍在利用這樣的方式在Docker系統中發掘更多可利用的漏洞。在近日由ZDNET所發布的一份報告中也提到:由於尋找管理員訪問權限暴露的錯誤配置非常簡單,因此自2021年以來,Docker已成為了網絡犯罪分子最主要的攻擊目標之一。

不可否認的是,Docker的勢頭在其剛發布的幾年,非常火爆,大量業內人士也表示很少見到如此吸引行業興趣的新興技術。然而,隨著興奮轉化為實際部署,大量企業開始注意到Docker的安全漏洞。尤其是當Docker涉及到安全運營與管理以及具有保密性、完整性和可用性的通用控制項的支持時,其表現令大多數人十分失望。

2、因傲慢錯失K8s,生態走下坡路

如果說由於自身漏洞與架構缺陷所帶來的安全性問題,是生來便拴在這條「鯨魚」尾部的一條鎖鏈。那麼近年來Docker生態系統的不斷流失,則可以算的上是一塊被人為捆綁在鎖鏈另一端的巨石。

縱觀Docker的整個發展歷程,其早期所取得的成功使該公司圍繞Docker產品建立了一個龐大的社區,並推動了一輪又一輪的融資。而這也使得Docker公司上下變得愈發自大,時至Kubernetes的出現給了他們迎頭一擊。Docker在處理開源社區寵兒Kubernetes時沒能給自己帶來任何好處。

儘管Kubernetes最初更傾向於Docker容器,但彼時傲慢的Docker對這位背靠Google的新朋友擺出了敵對姿態,並一意孤行的推出了自己的容器編排平台Docker Swarm。然而就在不久之後,Kubernetes就免費提供了Swarm的所有功能與更多優化,在Docker自己創建的遊戲中擊敗了它。

伴隨著Kubernetes這顆新星不斷上升,Docker團隊也逐漸意識到了自己所犯下的錯誤。在此後的一次採訪中,Docker創始團隊員工Jérôme Petazzoni表示:「Docker本可以讓Kubernetes成為GitHub上一流的Docker項目,但我們錯過了Kubernetes。我們處於集體思維的泡沫中,在內部我們認為Kubernetes太複雜了,Swarm會更成功。沒有意識到這一點是我們集體的失敗。」

雖然不久之後,Docker於2015年通過創建開放容器標準(OCI)試圖再次領導整個行業的發展趨勢,但事實證明Docker的這一舉動最終變成了搬起石頭砸自己的腳。不可否認的是,創建開放標準確實對Docker的生態發展起到了短暫的幫助,但這也為Docker的對手提供了一張免費的入場券,此後的長期競爭使得Docker的行業地位受到了嚴重侵蝕。

最終在2019年,由於市場、財務等多方面原因,Docker解僱了大批員工,並選擇將幾乎全部核心業務出售給Mirantis。而這次出售所帶來的一系列倉促的商業化改革、收入流限制以及對此前所達成協議的許可條款變更,再度對Docker本就岌岌可危的生態系統造成了一定的影響。隨後不久,Kubernetes v1.2版本也宣布了將徹底棄用Docker。至此,Docker這顆曾經耀眼的明星徹底喪失了光芒。

3、慢性自殺,逐漸凋零

雖然目前的Docker依然稱得上是業內最流行的容器構建工具之一,並擁有極為龐大的用戶群體。但大量開發人員已慢慢開始轉向其他替代方案例如Podman或Containerd。尤其是在如今Docker更改其開源計劃後,這一趨勢一定將會在未來變得更加快速且明顯。

對於Docker如今的處境,一位Reddit用戶發表了這樣的總結:Docker如今正在經歷著慢性死亡,無論是Docker技術還是其背後的公司,都已經幾乎失去了再度走向輝煌的可能性,因為它們已經沒有什麼能夠再提供的了。

4、寫在最後

如今可以遇見的是,在未來的幾年內Docker依然能夠在容器市場中占有一定的比例,但很明顯,十年後的IT環境將不會再把Docker作為開發者技術堆棧中的必備部分。也許屆時一些其他依賴於OCI的容器化軟體將占據市場領導者的位置,但從Docker目前的發展軌跡來看,這份名單中將不會再有它的身影。

當然,我們也看到Docker在努力挽救,比如從以往的企業導向變為更加注重開發者,但大勢所趨,積重難返。最後,只想說,偉大的事物往往不是被別人擊潰的,而是自取敗亡。

參考連結:

https://analyticsindiamag.com/kubernetes-parting-ways-with-docker-what-does-it-really-mean/

https://analyticsindiamag.com/kubernetes-docker-container-orchestration-race/

來源: 51CTO技術棧

關鍵字: