本文講的是<b>訪談 | Docker公司首席布道師談容器和下一代虛拟化</b>,【編者的話】本文為LinuxCon講師采訪的一部分,Docker公司的Jerome分享了Docker與其它容器技術的差別、Docker容器的存儲和資料遷移、Docker在企業中的應用等話題。
在這次的訪談中,Jerome深入分析了Docker并解釋了如何管理Docker容器的存儲,以及如何随着Docker容器遷移資料。
什麼是容器?有哪些現有的容器技術?Docker與其它容器技術的不同是什麼?
從宏觀角度來看,容器更像是輕量化的虛拟機。你可以在容器中安裝任何你想要的軟體,容器相對獨立且不會影響其它容器或者宿主環境。每一個容器有它自己的網絡堆棧、程序空間、檔案系統等。同時,他們的成本要遠小于虛拟機:容器啟動更快、占用更少的記憶體和硬碟空間。從底層角度來看,這都是因為容器隻是主控端上的一個程序,利用核心特征如命名空間群組管理來提供這種隔離。啟動一個容器隻是啟動了一個普通的UNIX程序;建立一個容器隻是複制了一個copy-on-wirte檔案系統的鏡像。 Docker與其它容器技術不同,因為它不隻是一個容器引擎。Docker是一個平台,整合了Docker引擎、Docker Hub以及一系列的生态工具,如Docker Compose、Docker Machine、Docker Swarm等。這些都采用開發API。
Docker與其它Hypervisor虛拟技術的不同之處?
有人說Docker是一個“容器的hypervisor”,但是許多人并不這麼認為,這是因為hypervisor通常是管理虛拟機,而Docker是管理容器。在底層技術細節也是不同的。當hypervisor啟動虛拟機時,它會建立虛拟硬體,并利用特定CPU基礎結構和特性,如VT-x、AMD-x或者權限層級。當Docker建立一個容器,它利用的是核心的特性,如命名空間、群組管理,而不依賴硬體特性。 這意味着容器在某種意義上說更具有可移植性,因為它們可以同時在實體機或者虛拟機上運作;但是他們從另外某種意義上來說,也更不容易移植,因為容器必須使用宿主的核心。這意味着,你不能運作一個Windows容器在Linux核心上(除非Linux核心可以執行Windows二進制程式)。
對管理Docker容器的存儲有什麼建議?如何将Docker容器和資料關聯?
Docker有個“卷”的概念,使得主控端和容器間可以共享目錄。卷從概念上與虛拟機的“共享檔案夾”有點類似,隻是他們不需要在容器上做任何配置,并且它們是零開銷的,因為他們采用的是綁定挂載實作。 當你的資料在硬碟(可以是一個具體的硬碟、RAID、其他挂載網絡上的裝置或者其他的任何裝置)上,挂載到容器主機上的最簡便的方法就是通過“卷”機制來暴露給容器。 Docker同樣有插件機制,支援容器為其它容器提供存儲。這意味着我們可以在容器中搭建Ceph、Gluster或者其它存儲叢集,然後将塊裝置和挂載點暴露給其它容器。
當Docker容器在别的機器上啟動時,如何使得資料随着容器移動?
就像在容器技術之前我們做的一樣:網絡存儲、分布式檔案系統、資料傳輸或者同步(利用rsync、unison等)。當使用容器時,有兩個優勢。首先,容器不會影響使用者存取資料的方式。例如,如果從DRBD遷移到Ceph,容器并不需要知道這個細節;事實上,同一個容器在本地存儲或者分布式存儲上運作是一樣的。另一個優勢來自于那些新的存儲插件。如果我們可以将應用容器和存儲容器分開,那這些插件可以讓使用者擷取資料更容易。
如何確定對正在運作的容器的修改,其可以被更新回基礎的容器鏡像?
Docker提供了相關的API來對比容器和它的基礎鏡像,同時也可以根據現有的容器來建立新的鏡像。API對應的指令是<code>docker diff</code>和<code>docker commit</code>。
Docker容器如何幫助建構高可用的解決方案?
建構一個高可用的系統需要做很多的事情,Docker讓這一切變得無比簡單。例如,確定部署時相關機器上軟體版本的一緻性。Docker不會自動的解決問題,但是它可以讓事情變得更加簡單、快捷和可信,就像一個包管理器通常比從源代碼編譯更可靠。
如何看待在企業客戶生産環境中Docker适配性的變化?
通常來看,Docker一開始隻是做為一個開發工具來保證使用者有一個一緻、可複制的開發環境,類似Hashicorp的Vagrant。緊接着會被用到CI/CD中,來減少測試次數。總之,整體來看它目前可适用于生産環境的前一個階段,但是當使用者已經積累了足夠的經驗和自信來運作Docker時,它就可以服務生産環境了。
===============================================
譯者介紹
陳傑,北京理工大學計算機學院在讀博士,研究方向是自然語言處理在企業網絡信譽評價方面的應用,平時也樂于去實作一些突發的想法。在疲于配置系統環境時發現了Docker,跟大家一起學習、使用和研究Docker。
原文釋出時間為:2015-08-16
本文作者:Sonyfe25cp
本文來自雲栖社群合作夥伴DockerOne,了解相關資訊可以關注DockerOne。
原文标題:訪談 | Docker公司首席布道師談容器和下一代虛拟化