再見Docker!感謝所有人!
【編者的話】Docker不再是唯一的容器運(yùn)行時(shí),與Docker所能提供的相比,即將出現(xiàn)的其他容器運(yùn)行時(shí)將更快、更安全、更智能、功能更豐富(其中一些已經(jīng)如此)。Docker,再見!感謝Docker!感謝所有在容器技術(shù)上做出付出與貢獻(xiàn)的可愛的人們!
早在2018年7月,我就開始寫一篇關(guān)于Docker作為公司即將消亡的博客文章(也可能是作為一種技術(shù)消亡),但我從來沒有抽出時(shí)間來完成和發(fā)表這篇文章。是時(shí)候把那篇文章拿出來了。
當(dāng)然Docker還在這里,每個(gè)人都還在使用Docker,并且在不久的將來還會繼續(xù)這樣做(可預(yù)見的將來會有多遠(yuǎn)——還有待確定)。我之所以選擇這個(gè)標(biāo)題作為博客文章的標(biāo)題,是因?yàn)樵谖铱磥?,Docker作為一家公司的日子已經(jīng)***了,或許它作為技術(shù)也是這樣。請?jiān)试S我占用你幾分鐘的時(shí)間,我將與你分享我的想法的基礎(chǔ)。
幾年前,Docker是一家改變世界的公司,我們可以肯定地說,今天仍然在改變世界。容器和容器背后的技術(shù)已經(jīng)存在多年,遠(yuǎn)在Docker這個(gè)詞還沒被想到,甚至變成了一個(gè)動詞(“容器化”所有的應(yīng)用)之前就已經(jīng)存在了,但Docker是鼓勵大眾消費(fèi)技術(shù)的公司。容器,以一種簡單容易且時(shí)尚的方式存在著。大多數(shù)技術(shù)公司(或者至少是那些認(rèn)為自己是現(xiàn)代技術(shù)公司的公司)將使用Docker或容器作為其產(chǎn)品或管道的一部分,因?yàn)樗浅S幸饬x,并為整個(gè)流程帶來了如此多的好處。
在過去的12-24個(gè)月里,人們逐漸意識到Docker已經(jīng)走完了自己的路,作為一種技術(shù),他們將無法為今天的產(chǎn)品提供額外的價(jià)值,并決定從其他地方尋找額外的優(yōu)勢。
Kubernetes贏得了容器編排之戰(zhàn),我想沒有人否認(rèn)這一事實(shí)。Docker本身也采用了Kubernetes。總會有一些利基玩家(niche players)擁有特定的Docker Swarm、Mesos、Marathon和Nomad的用例,但事實(shí)上的標(biāo)準(zhǔn)是Kubernetes。所有3家大型云服務(wù)提供商現(xiàn)在都有一個(gè)托管的Kubernetes解決方案,可以提供給他們的客戶(最終將會淘汰他們自己多年來開發(fā)的自制解決方案,因?yàn)橹荒苡幸粋€(gè))。每家云服務(wù)提供商都在建設(shè)更多的服務(wù),提供更多的解決方案,以吸引更多的客戶,增加他們的收入。
故事到這里就結(jié)束了,這沒什么好看的。接下來是閃亮的東西。
目前,Kubernetes使用Docker作為底層容器引擎。我認(rèn)為Kubernetes社區(qū)理解Docker作為一個(gè)容器運(yùn)行時(shí)(我特別使用這個(gè)術(shù)語)是盡快推出產(chǎn)品的最終解決方案。他們也很早就(明智地)認(rèn)識到,他們需要有一個(gè)選擇,那就是切換出容器運(yùn)行時(shí)的選項(xiàng),并最終允許Kubernetes的消費(fèi)者做出選擇。
開放容器計(jì)劃帶來了運(yùn)行時(shí)規(guī)范,它打開了一扇門,讓我們所有人都可以使用Docker以外的其他東西作為運(yùn)行時(shí)。而且它們還在穩(wěn)步增長。Docker不再是唯一使用的運(yùn)行時(shí)。他們正在社區(qū)中成長,社區(qū)正在慢慢地分享如何使用Docker之外的其他東西的知識。Kelsey Hightower——從CRI-O到containerd再到gVisor,多年來一直在努力更新他的Kubernetes(坦白說,這是一項(xiàng)了不起的工作)。社區(qū)里所有的酷孩子都不再使用Docker作為底層運(yùn)行時(shí)。現(xiàn)在有許多其他的選擇,比如clearcontainers、katacontainers,并且這個(gè)列表還在不斷地增長。
大多數(shù)人(包括我自己)都不具備足夠的知識和專業(yè)技能,不知道如何將運(yùn)行時(shí)切換到他們想要的運(yùn)行時(shí),通常只是使用默認(rèn)的開箱即用的運(yùn)行時(shí)。當(dāng)人們明白他們可以很容易地選擇更換容器運(yùn)行時(shí),并且知識是現(xiàn)成的、容易獲得的,我認(rèn)為我們沒有任何理由再使用Docker,因此Docker作為一種技術(shù)和一家公司會慢慢消失。與Docker所能提供的相比,即將出現(xiàn)的其他容器運(yùn)行時(shí)將更快、更安全、更智能、功能更豐富(其中一些已經(jīng)如此)。如果你有一個(gè)更好、更智能、更安全的產(chǎn)品——為什么人們會繼續(xù)使用不再適合他們?nèi)找嬖鲩L的需求的技術(shù)呢?
對Docker來說,為了避免這種結(jié)果,我建議投入盡可能多的精力,為任何工作負(fù)載創(chuàng)建***的運(yùn)行時(shí),這樣Docker仍然是每個(gè)人使用的事實(shí)上的標(biāo)準(zhǔn)。這里有個(gè)問題是,容器運(yùn)行時(shí)沒有錢,Docker從來沒有在運(yùn)行時(shí)賺錢,他們在容器運(yùn)行時(shí)之上和之上的企業(yè)特性中尋找收入。他們將如何解決這個(gè)問題,超出了我以及這篇文章的范圍。
Docker社區(qū)群體一直在穩(wěn)步下降,受歡迎程度一直在下降,新特性和公告的數(shù)量也在下降,而且在過去一兩年中一直在下降。
前段時(shí)間有人告訴我,說壞話或者告訴別人壞消息通常很容易。我們可以很容易地說這是錯的,這沒有用,這應(yīng)該改變。但是如果沒有提供一個(gè)積極的轉(zhuǎn)折,你就會變成一個(gè)悲觀的人。“死神”,別做那樣的人。
我想聽聽他們的建議,并在此基礎(chǔ)上補(bǔ)充一點(diǎn),這對你今天意味著什么。你應(yīng)該開始投資于理解這些其他運(yùn)行時(shí)如何幫助你,在它們合適的地方,增加你的知識和專業(yè)技能,這樣你就可以做好準(zhǔn)備,當(dāng)其他人停止使用Docker時(shí),你會發(fā)現(xiàn)自己不得不匆忙地調(diào)整所有的基礎(chǔ)設(shè)施。我認(rèn)為這是不可避免的。
以上就是我8個(gè)月前想寫的帖子……
促使我今天完成這篇文章的是Scott Mccarty的一篇文章——關(guān)于即將到來的RHEL 8 beta版——Enterprise Linux 8 beta版:一套新的容器工具——以及我隨后發(fā)布的Twitter:
瞧吧,RHEL 8不再有Docker可用了。
如果你是一個(gè)容器老手,你可能已經(jīng)養(yǎng)成了通過安裝Docker包來定制系統(tǒng)的習(xí)慣。在你全新的RHEL 8 Beta系統(tǒng)中,你可能要做的***件事就是去找你的老朋友yum。你將嘗試安裝Docker包,但是沒有成功。如果你很聰明,接下來,你會搜索并找到這個(gè)包:
- podman-docker.noarch : "package to Emulate Docker CLI using podman."
這個(gè)Podman是什么?Docker包被容器工具模塊替換,該模塊由Podman、Buildah、Skopeo和其他幾個(gè)小部件組成。
譯者:Mr.lzc,軟件工程師、DevOpsDays深圳核心組織者,目前供職于華為,從事云存儲工作,以Cloud Native方式構(gòu)建云文件系統(tǒng)服務(wù),專注于Kubernetes、容器、微服務(wù)領(lǐng)域。