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