這篇文章給大家介紹如何進(jìn)行Docker簡介的原理分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)的團(tuán)隊(duì)成員不追求數(shù)量、追求質(zhì)量。我們經(jīng)驗(yàn)豐富并且專業(yè),我們之間合作時(shí)就好像一個(gè)人,協(xié)同一致毫無保留。創(chuàng)新互聯(lián)建站珍視想法,同時(shí)也看重過程轉(zhuǎn)化帶來的沖擊力和影響力,在我們眼中,任何細(xì)節(jié)都不容小覷。一直致力于為企業(yè)提供從申請域名、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站建設(shè)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。
生活在云時(shí)代的程序員真是很幸福,各種各樣豐富的開發(fā)工具可選。既然生活在云時(shí)代,那么,程序員就應(yīng)該用云思維來進(jìn)行開發(fā),本系列文章就是基于Docker開發(fā)學(xué)習(xí)和總結(jié)筆記。
背景
Docker是一個(gè)開源項(xiàng)目,誕生于2013年初,最初是dotCloud公司內(nèi)部的一個(gè)業(yè)余項(xiàng)目,使用go語言實(shí)現(xiàn),遵從Apache 2.0協(xié)議,項(xiàng)目代碼托管在github上。
由于眾多新穎的特性以及項(xiàng)目本身的開放性,Docker在不到兩年的時(shí)間迅速獲得諸多廠商的青睞,其中包括Google,Microsoft,VMware等業(yè)界行業(yè)領(lǐng)導(dǎo)者,今年9月中旬,Docker獲得4000萬美元的C輪融資,以推動(dòng)分布式應(yīng)用方面的發(fā)展。
原理
Docker是一個(gè)基于輕量級虛擬化技術(shù)的容器引擎項(xiàng)目,Docker可以在容器內(nèi)快速自動(dòng)化部署應(yīng)用,并且可以通過內(nèi)核虛擬化技術(shù)(namespaces以及cgoups等)來提供容器的資源隔離與安全保障,由于Docker通過操作層的虛擬化實(shí)現(xiàn)隔離,所以Docker容器在運(yùn)行時(shí),不需要類似虛擬機(jī)(VM)額外操作系統(tǒng)開銷,提高資源利用率,并且提升注入IO等方面性能。
Docker的英文意思是碼頭工人,也就是搬運(yùn)工,搬運(yùn)的時(shí)集裝箱(Container),集裝箱里裝的不是商品,而是任意類型的App,docker把App(叫Paylaod)裝在Container內(nèi),通過Linux Container技術(shù)的包裝將App變成一種標(biāo)準(zhǔn)的、可移植的、自管理的組件,這種組建可以在開發(fā)者的系統(tǒng)中開發(fā)、調(diào)試、運(yùn)行,最終非常方便和一致地運(yùn)行在產(chǎn)品(Porduction)環(huán)境下。
特性
Docker提供了一種可移植的配置標(biāo)準(zhǔn)化機(jī)制,允許你一致性地在不同的機(jī)器上運(yùn)行同一個(gè)Container;而LXC本身可能因?yàn)椴煌瑱C(jī)器的不同配置而無法方便地移植運(yùn)行;
Docker以App為中心,為應(yīng)用的部署做了很多優(yōu)化,而LXC的幫助腳本主要是聚焦于如何機(jī)器啟動(dòng)地更快和耗更少的內(nèi)存;
Docker為App提供了一種自動(dòng)化構(gòu)建機(jī)制(Dockerfile),包括打包,基礎(chǔ)設(shè)施依賴管理和安裝等等;
Docker提供了一種類似git的Container版本化的機(jī)制,允許你對你創(chuàng)建過的容器進(jìn)行版本管理,依靠這種機(jī)制,你還可以下載別人創(chuàng)建的Container,甚至像git那樣進(jìn)行合并;
Docker Container是可重用的,依賴于版本化機(jī)制,你很容易重用別人的Container(叫Image),作為基礎(chǔ)版本進(jìn)行擴(kuò)展;
Docker Container是可共享的,有點(diǎn)類似github一樣,Docker有自己的INDEX,你可以創(chuàng)建自己的Docker用戶并上傳和下載Docker Image;
Docker提供了很多的工具鏈,形成了一個(gè)生態(tài)系統(tǒng);這些工具的目標(biāo)是自動(dòng)化、個(gè)性化和集成化,包括對PAAS平臺(tái)的支持等;
Docker與傳統(tǒng)虛擬街區(qū)別
##為什么要學(xué)習(xí)docker
Docker是一種新興的虛擬化方式,和傳統(tǒng)的虛擬化方式相比具有很多優(yōu)勢。
首先,Docker提供的時(shí)系統(tǒng)級的虛擬化,相比傳統(tǒng)的虛擬化方式,Docker資源利用率極高,除了容器內(nèi)的應(yīng)用外,Docker基本上不消耗額外的系統(tǒng)資源,傳統(tǒng)的虛擬機(jī)同時(shí)開啟數(shù)個(gè)虛擬機(jī)時(shí)需要同時(shí)運(yùn)行數(shù)個(gè)虛擬機(jī)應(yīng)用,而Docekr只需要啟動(dòng)相應(yīng)的隔離層即可,所有,一臺(tái)主機(jī)可以運(yùn)行成百上千的Docker容器。其次,Docker容器的啟動(dòng)是秒級的,這是傳統(tǒng)虛擬機(jī)所無法達(dá)到的。
更快的交付和部署
對開發(fā)和運(yùn)維(devop)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn)行。
開發(fā)者可以使用一個(gè)標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后,運(yùn)維人員可以直接使用這個(gè)容器來部署代碼。 Docker 可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個(gè)過程全程可見,使團(tuán)隊(duì)中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。Docker容器很輕很快!容器的啟動(dòng)時(shí)間是秒級的,大量地節(jié)約開發(fā)、測試、部署的時(shí)間。
##學(xué)習(xí)Docker應(yīng)該具備哪些知識(shí)
具備一定的Linux使用經(jīng)驗(yàn),能熟悉的使用Linux命令行。對PAAS、LXC、CGroup、AUFS有一定的了解基礎(chǔ)。
學(xué)習(xí)中需要注意什么
在學(xué)習(xí)的過程中可能會(huì)接觸到很多新概念,對于不太了解的概念應(yīng)該及時(shí)使用搜索引擎找找相應(yīng)的答案。多實(shí)踐,對于學(xué)習(xí)的過程遇到的問題應(yīng)該親自動(dòng)手實(shí)踐,并解決。
關(guān)于如何進(jìn)行Docker簡介的原理分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。