如果你在企業(yè)IT工作,那你會(huì)聽(tīng)說(shuō)過(guò)Docker。即使在是像Puppet、Hadoop和MongoDB這樣的熱門(mén)技術(shù)中,Docker也會(huì)脫穎而出。
但正是因?yàn)镈ocker正處于炒作期,因此這并不意味著它適合你。正如我們Tech Pro Research分析中指出,“不管你的公司是否給了Docker一個(gè)肯定的‘可能’,需要警惕。”
但是,在你下載Docker并使用起來(lái)之前,有10件事情是你應(yīng)該對(duì)這項(xiàng)超人氣容器技術(shù)應(yīng)該了解的。
1、Docker是一種打包和分發(fā)軟件的方式
一個(gè)現(xiàn)代的軟件系統(tǒng)包括許多部分,包括二進(jìn)制文件、庫(kù)文件、配置文件和依賴(lài)性。將這些不同的組件裝成一臺(tái)機(jī)器可不是一件容易的事情,但你“出貨”這款軟件的時(shí)候就更加復(fù)雜了。一旦你出貨了你的軟件,你就需要找到一種方式,將所有這些東西打包到一起、把它們放到需要運(yùn)行的地方。Docker就是這樣一種容器技術(shù),讓打包軟件以及所有組件之間的依賴(lài)性、提供給開(kāi)發(fā)者、分期或者生產(chǎn)、或者發(fā)送到需要運(yùn)行的地方,所有這些變得非常輕松。
2、Docker并不是特別新的技術(shù)
Docker問(wèn)世只有短短幾年時(shí)間,但是容器技術(shù)已經(jīng)伴隨我們有幾十年了。雖然容器在大型機(jī)時(shí)代很有用處,但是Docker現(xiàn)在發(fā)揮才能是受很多因素影響的,包括Linux日益突出、虛擬化技術(shù)的普及、以及云對(duì)操作系統(tǒng)重要性的侵蝕。
3、幾乎每個(gè)人都提供了Docker
不管你選擇的廠商恰好是誰(shuí),幾乎這些廠商100%都支持Docker。從Amazon Web Services到Red Hat,再到Google,人人都愛(ài)Docker。
4、Docker并不只是面向Linux
Docker扎根于Docker,但是微軟把它發(fā)揚(yáng)光大?;蛘咚欢〞?huì)如此。Docker依賴(lài)于像Linux Containers(LXC)這樣的Linux技術(shù),以及cgroups和命名空間功能,這些在Windows尚不存在。因此微軟正在奮力構(gòu)建這之間的掛接,使得Docker容器也能夠運(yùn)行在Windows Server上。微軟在Windows上運(yùn)行自己的容器技術(shù)已經(jīng)有多年時(shí)間了,但是微軟正在擴(kuò)大范圍,也支持Docker這個(gè)社區(qū)標(biāo)準(zhǔn)。
5、Docker讓你分配特定量的CPU、內(nèi)存和磁盤(pán)資源給每個(gè)進(jìn)程,就像虛擬機(jī)
在Docker的核心是Linux cgroups(控制組),提供計(jì)算和限制容器使用CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤(pán)資源數(shù)量的方法。這提供了一些虛擬化的好處,例如能夠分配出一臺(tái)計(jì)算機(jī)給少量的資源,這樣你就不用讓一個(gè)進(jìn)程占用所有計(jì)算機(jī)讓其他進(jìn)程沒(méi)有資源可用——但是這并不會(huì)帶來(lái)VMware那樣沉重的開(kāi)銷(xiāo)或者成本。
6、Docker比啟動(dòng)一個(gè)虛擬機(jī)快(微秒對(duì)分鐘)
如果你想要在一臺(tái)服務(wù)器上運(yùn)行多個(gè)任務(wù),那么傳統(tǒng)的方法是將其劃分為多個(gè)虛擬機(jī),使用每個(gè)虛擬機(jī)來(lái)運(yùn)行一個(gè)任務(wù)。但是虛擬機(jī)啟動(dòng)很慢,因?yàn)樗鼈儽仨殕?dòng)整個(gè)操作系統(tǒng),這要花上幾分鐘的時(shí)間。而且這會(huì)占用大量資源,因?yàn)槊總€(gè)虛擬機(jī)都需要運(yùn)行一個(gè)完整的操作系統(tǒng)實(shí)例。容器則提供了某種類(lèi)似的行為,但是速度更快一些,因?yàn)閱?dòng)一個(gè)容器就像啟動(dòng)一個(gè)進(jìn)程。Docker的開(kāi)銷(xiāo)也更少——實(shí)際上不會(huì)多過(guò)一個(gè)進(jìn)程。
7、但是,Docker不消滅掉虛擬機(jī)
Docker并不是虛擬機(jī)的對(duì)等替代物,因?yàn)樗竽闼械娜萜鞴蚕硐嗤牡讓硬僮飨到y(tǒng)。這意味著,例如你不能在同一臺(tái)服務(wù)器上同時(shí)運(yùn)行Windows和Linux應(yīng)用。而且,隨著Docker容器脫穎而出,它的安全隔離要弱于虛擬機(jī),這也使得它成為某種多租戶(hù)的不恰當(dāng)?shù)倪x擇。
8、Docker的開(kāi)發(fā)速度相當(dāng)迅猛
登上Docker這趟列車(chē)可不像是乘坐蒸汽機(jī),而更像是跳上了日本子彈頭火車(chē)……它以250 MPH的速度向你呼嘯而來(lái)??紤]到Docker只有一年半的API已經(jīng)有了15個(gè)修訂版本,你會(huì)知道它變化地有多快。雖然Docker“已經(jīng)成熟,因?yàn)樗诔砷L(zhǎng)為一款穩(wěn)定的、企業(yè)值得使用的軟件”,但是它仍然沒(méi)有能持續(xù)10年的支持承諾,這通常是企業(yè)對(duì)他們的軟件的期望。
9、Docker正面臨日益激烈的競(jìng)爭(zhēng)
隨著Docker越來(lái)越受歡迎,它不可避免地要面臨競(jìng)爭(zhēng)。例如,CoreOS最近發(fā)布了一個(gè)與之競(jìng)爭(zhēng)的Docker運(yùn)行時(shí)間,Rocket和Linux青睞的Ubuntu也有自己的LXD容器項(xiàng)目。這些和其他競(jìng)爭(zhēng)似乎都在指責(zé)Docker封閉的生態(tài)系統(tǒng)。在Docker的世界,所有都依賴(lài)于Docker注冊(cè)。你必須依賴(lài)公司的注冊(cè)表,在你自己的數(shù)據(jù)中心運(yùn)行一個(gè)Docker拷貝,這不是免費(fèi)的。
10、你應(yīng)該謹(jǐn)慎行事
正如對(duì)待任何新技術(shù),你可能會(huì)在使用Docker之間考慮考慮。從技術(shù)的角度來(lái)看,你應(yīng)該在逐漸熟悉在Docker容器中運(yùn)行應(yīng)用的同時(shí)考慮哪些該做哪些不該做。但這不僅僅是代碼。正如正面所說(shuō),Docker的社區(qū)可能并不適合你。你應(yīng)該加入社區(qū)——參加聚會(huì)、閱讀、并加入到郵件列表中,等等——并決定你是否希望在Docker上投入你的時(shí)間。
不管你是以何種方式接觸到Docker,容器技術(shù)都已經(jīng)來(lái)臨。Docker使得現(xiàn)代計(jì)算中復(fù)雜的東西變得簡(jiǎn)化了。Docker是容器包的領(lǐng)導(dǎo)者,你需要考慮它的調(diào)卷。這些條款是什么取決于你和你企業(yè)基礎(chǔ)設(shè)施的狀態(tài)。
原文鏈接:http://cio.zdnet.com.cn/cio/2015/0304/3047283.shtml