關(guān)于Docker技術(shù)你至少應(yīng)該知道這九個方面
譯文用于在虛擬化容器中部署和分發(fā)應(yīng)用程序的Docker開源平臺具有諸多優(yōu)點(diǎn)。本文解釋了企業(yè)應(yīng)當(dāng)了解這項(xiàng)流行技術(shù)的幾個方面。
Docker容器架構(gòu)
Docker容器的架構(gòu)包括裝有主機(jī)操作系統(tǒng)的物理機(jī)器。主機(jī)操作系統(tǒng)上面部署了Docker引擎,引擎有助于構(gòu)建用來托管運(yùn)行應(yīng)用程序的虛擬容器。Docker引擎構(gòu)建隔離的容器,應(yīng)用程序就可以部署在這些容器上面。不像典型的虛擬機(jī)管理程序解決方案,Docker不需要為每個應(yīng)用程序構(gòu)建單獨(dú)的虛擬機(jī),也不需要為每個虛擬機(jī)安裝來賓操作系統(tǒng)(guest OS)。
在基于虛擬機(jī)管理程序的應(yīng)用程序虛擬化中,虛擬化平臺(比如Hyper-V或VMware)部署在裝有主機(jī)操作系統(tǒng)的物理服務(wù)器上。虛擬化平臺上構(gòu)建了虛擬機(jī),每個虛擬機(jī)都有獨(dú)立的來賓操作系統(tǒng)。應(yīng)用程序部署在所有這些層上。托管運(yùn)行那么多的虛擬機(jī)(每個虛擬機(jī)都有獨(dú)立的來賓操作系統(tǒng))讓這種架構(gòu)對資源的需求量比Docker容器大得多。
容器自動化
Docker容器通常提供了內(nèi)置工具,使容器配置過程實(shí)現(xiàn)自動化,為此它可以利用來自任何現(xiàn)有應(yīng)用程序容器的源代碼。這需要處理服務(wù)、依賴項(xiàng)、封裝及更多操作。Docker還提供了一系列廣泛的預(yù)先配置的Docker映像,可以幫助企業(yè)組織快速部署應(yīng)用程序容器。
為了實(shí)現(xiàn)同樣這一系列任務(wù),任何虛擬機(jī)管理程序解決方案都需要一套復(fù)雜的程序,包括將應(yīng)用程序連同依賴項(xiàng)和工具一同克隆到隔離的程序包中。
計算資源需求
在Docker容器中,應(yīng)用程序直接建立在Docker引擎上,因而不需要來賓操作系統(tǒng)。這項(xiàng)功能有助于減少托管運(yùn)行多個來賓操作系統(tǒng)的總體系統(tǒng)要求(比如處理器或內(nèi)存)。這還減少了對計算資源的需求,因而降低了部署成本。不像Docker容器,基于虛擬機(jī)管理程序的應(yīng)用程序需要額外的來賓操作系統(tǒng)以及應(yīng)用程序?qū)嶋H運(yùn)行所需要的其他依賴項(xiàng)。
#p#
進(jìn)程隔離和安全
在Docker容器中,每個應(yīng)用程序或容器與其他應(yīng)用程序或容器隔離開來,但它們都使用同一個根(root)。這提供了簡化管理這個優(yōu)點(diǎn),不過也帶來了幾個缺點(diǎn)。比如說,萬一根受到危及,主機(jī)容器就可能面臨險境。相比之下,虛擬機(jī)管理程序解決方案提供了多少有點(diǎn)全面的隔離,具體取決于需求。
Docker公司正在竭力解決Docker容器的安全問題。該公司最近與業(yè)內(nèi)專家協(xié)作,并與互聯(lián)網(wǎng)安全中心一起發(fā)布了部署Docker 1.6或更新版技術(shù)的安全***實(shí)踐。
啟動時間
容器直接建立在Docker引擎上;啟動應(yīng)用程序所花的時間完全取決于應(yīng)用程序的類型。底層內(nèi)核已經(jīng)在運(yùn)行,沒有中間層操作系統(tǒng)(來賓操作系統(tǒng))縮短了容器的啟動時間。在虛擬機(jī)管理程序中,系統(tǒng)總的啟動時間包括來賓操作系統(tǒng)的啟動時間和應(yīng)用程序的啟動時間。
應(yīng)用程序交付
Docker允許在“Docker化”的容器中跨不同環(huán)境分發(fā)或交付應(yīng)用程序,所有依賴項(xiàng)綁定為一個程序包。比如說,想把某個應(yīng)用程序從開發(fā)環(huán)境遷移到測試環(huán)境,然后遷移到生產(chǎn)環(huán)境,整個容器就可以作為一個實(shí)體來加以封裝和遷移;應(yīng)用程序仍與所有的環(huán)境配置綁定起來。這有助于跨不同部門、團(tuán)隊成員之間或者通過云來遷移應(yīng)用程序,沒有導(dǎo)致故障的任何風(fēng)險。
在虛擬機(jī)管理程序解決方案中,封裝和遷移應(yīng)用程序連同所有相關(guān)服務(wù)和工具總是有可能導(dǎo)致環(huán)境遭到破壞。
#p#
硬件兼容性
借助Docker容器,管理員就能構(gòu)建應(yīng)用程序,沒必要考慮來賓操作系統(tǒng)方面的任何依賴項(xiàng)。這使得應(yīng)用程序具有輕量級、運(yùn)行快、開銷低的優(yōu)點(diǎn),同時消除了潛在的平臺兼容性問題。
在虛擬機(jī)管理程序解決方案中,每個虛擬機(jī)專用的來賓操作系統(tǒng)使得響應(yīng)起來比Docker容器應(yīng)用程序成本更高、速度更慢。在特定虛擬機(jī)管理程序平臺中構(gòu)建的任何虛擬機(jī)無法在其他虛擬機(jī)管理程序平臺上運(yùn)行。
企業(yè)級功能
雖然許多企業(yè)組織已經(jīng)開始使用Docker容器用于應(yīng)用程序虛擬化,但這項(xiàng)技術(shù)仍缺少一些企業(yè)級虛擬化功能,比如細(xì)粒度訪問控制、容器遷移、日志和備份恢復(fù)等。而大多數(shù)虛擬機(jī)管理程序平臺支持諸如此類的企業(yè)級功能。如果企業(yè)組織在考慮將虛擬化應(yīng)用程序部署到生產(chǎn)環(huán)境中,建議使用虛擬機(jī)管理程序解決方案,就因?yàn)檫@一點(diǎn):基于Docker的解決方案在提供企業(yè)級功能方面有所欠缺。
供應(yīng)商
現(xiàn)在有許多供應(yīng)商提供關(guān)于容器技術(shù)的產(chǎn)品和服務(wù)。從2013年起,負(fù)責(zé)Docker開源項(xiàng)目的商業(yè)公司Docker, Inc.,開始主導(dǎo)容器虛擬化的市場。最近,包括擁有LXD技術(shù)的Canonical以及擁有Rocket技術(shù)的CoreOS等其他供應(yīng)商,也開始進(jìn)入容器市場。
原文標(biāo)題:Docker containers 9 fundamental facts