Docker容器的由來

今天小編給大家分享的是Docker容器的由來的詳細介紹,相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出哈巴河免費做網(wǎng)站回饋大家。

一、docker的介紹

2010年dotCloud公司在舊金山成立,PAAS平臺的服務(wù)供應(yīng)商;2013年dotCloud更名為Docker股份有限公司(Docker,Inc)。Docker公司專注開源容器引擎的開發(fā),他們的容器引擎產(chǎn)品就叫docker,基于go語言,并遵從Apache2.0協(xié)議。

Docker容器的由來

創(chuàng)始人 Solomon

上一篇文章我們跟大家介紹了什么是容器技術(shù),容器技術(shù)的底層支持其實就是Linux Container(LXC)技術(shù),LXC技術(shù)在 linux 2.6 的 kernel 里就已經(jīng)存在了,但是LXC設(shè)計之初并非為專門為PAAS云計算考慮的,所以LXC缺少一些標準化的管理手段,那時候LXC想用好非常費勁。于是,docker發(fā)現(xiàn)了這點,然后針對LXC做了上層標準管理方面的支持,讓LXC更加好用。

那么為什么dotCloud公司能發(fā)現(xiàn)這個機遇搞出個docker然后聲名大噪呢?就像為什么馬云能在中國、在合適的時間創(chuàng)立了阿里巴巴,做了中國首富... 其實,這都是時代的造就。我們深入分析IT架構(gòu)的發(fā)展變革史就能明白一些東西了。

早期,我們IT行業(yè)要成功開發(fā)出一個產(chǎn)品,那么要關(guān)心的的東西太多了。機房選址、服務(wù)器硬件、網(wǎng)絡(luò)設(shè)備、布線、上架、裝系統(tǒng)、搭環(huán)境、開發(fā)、測試... 只要是跟IT相關(guān)的你都得去關(guān)心安排好。這個時期是傳統(tǒng)IT管理與建設(shè)的初期,IT資源成本很高,涉及的人才成本也高。

Docker容器的由來

圖1 早期機房建設(shè)和維護工作

云計算IAAS時代,AWS、騰訊云、阿里云的出現(xiàn)解決了早期傳統(tǒng)IT管理的痛苦,用戶有了云將不再面對硬件底層管理的問題,開發(fā)和測試都是在云主機上操作。然而,云主機就是一個個不一樣的操作系統(tǒng),硬件底層管理問題沒有了,但是中間件相關(guān)的問題依然存在!IT運維人員要為開發(fā)測試人員提供完善的、穩(wěn)定的云主機環(huán)境,這個過程也是相對復(fù)雜的,因為開發(fā)測試人員要求的環(huán)境也是多種多樣,IT運維人員需要花費一定的時間和精力去維護和完善。當前大部分公司還是處在這個階段。

Docker容器的由來

虛擬機 vs 容器 架構(gòu)區(qū)別

容器PAAS時代,這個時代即將到來?。ㄆ鋵?,已經(jīng)來了)。容器技術(shù)的出現(xiàn)就是為了解決上面兩個時期遺留的痛點問題。有了容器技術(shù),開發(fā)者更加專注于程序的開發(fā)和測試,開發(fā)結(jié)束后能快速方便的把開發(fā)好的APP遷移到另外一個容器環(huán)境里。簡單來說,開發(fā)人員只需為應(yīng)用創(chuàng)建一次運行環(huán)境,就可以在任何環(huán)境里運行;Build Once, Run Anywhere。對于IT運維人員來說,也是好事!再也不用苦逼的為開發(fā)人員搞一套又一套不一樣的開發(fā)環(huán)境了,搞出一套PAAS平臺,隨便讓開發(fā)使,他們再怎么折騰也不會改變底層的東西,所以不用花大力氣去維護這些環(huán)境;Configure Once, Run Anything。既然這個容器PAAS這么牛逼,那么想做的人也是非常多,docker公司之所以能占領(lǐng)先機搞定,主要是因為它在這領(lǐng)域有一定的積累,之前也跟CoreOS合作過(CoreOS也是做容器技術(shù)方面很牛的公司,后來跟docker分道揚鑣,Rocket是CoreOS發(fā)布的跟docker競爭的產(chǎn)品)。所以,在云計算PAAS風(fēng)口上,docker在合適的時間通過自己的技術(shù)積累發(fā)布了這套開源容器管理引擎,想不出名也難了!

二、 docker的組成架構(gòu)

docker設(shè)想是交付運行環(huán)境如同海運,OS如同一個貨輪,每一個在OS基礎(chǔ)上的軟件都如同一個集裝箱,用戶可以通過標準化手段自由組裝運行環(huán)境,同時集裝箱的內(nèi)容可以由用戶自定義,也可以由專業(yè)人員制造。這樣,交付一個軟件,就是一系列標準化組件的集合的交付,如同樂高積木,用戶只需要選擇合適的積木組合,并且在最頂端署上自己的名字(最后個標準化組件是用戶的app)。

要實現(xiàn)這樣的集裝箱貨輪海運的功能,那么docker是如何去設(shè)計如何區(qū)做的呢?我們先從docker的架構(gòu)說起。

docker主要由以下模塊組成:

  • Docker 客戶端 - Client

  • Docker 服務(wù)器 - Docker daemon

  • Docker 鏡像 - Image

  • Docker 倉庫 - Registry 

  • Docker 容器 - Container

Docker容器的由來

docker經(jīng)典架構(gòu)圖

                                                               

Docker 采用的是 (C/S) 架構(gòu)模式,使用遠程REST API來管理和創(chuàng)建Docker容器。既然是采用REST模式,所以客戶端和服務(wù)端可以不用在一個host上,可以分布式管理部署。

Docker 客戶端 - Client

docker的客戶端分命令和API兩種類型。docker 的命令一般在系統(tǒng)安裝好docker包后就可以使用,linux下直接是docker開頭,可以用docker --help命令查看所有能運行的命令。docker的命令也非常好記,跟linux命令一樣,用多了自然就會了;而且學(xué)習(xí)docker最好的也是從命令入手。

docker的API一般是寫腳本或者開發(fā)的時候用比較多,而且都是REST風(fēng)格的,用命令交互的話可以結(jié)合CURL使用。用API能做創(chuàng)建、刪除、修改、查詢等一系列操作,不過還得結(jié)合編程語言使用才會比較強大。

Docker 服務(wù)器 - Docker daemon

docker daemon就是docker的主服務(wù),docker.service。在linux操作系統(tǒng)下,安裝好了docker服務(wù)我們就可以使用systemctl start/status/stop docker.service去操作docker的服務(wù)。這個服務(wù)非常重要,如果你系統(tǒng)的docker.service存在異常,那么你的所有docker關(guān)聯(lián)的組件都會出錯。

Docker 鏡像 - Image

docker的鏡像這個很容易理解,如果你玩過vmware或者openstack的話就很容易懂了,vmware和openstack都有鏡像模版的概念,我們要衍生創(chuàng)建虛擬機,就可以通過鏡像模版來快速部署和生成相同類型的VM。docker的image也是一個道理,通過不同類型的模版,比如redis鏡像、nginx鏡像來快速創(chuàng)建出容器。好比復(fù)制克隆,只要資源夠,想生成多少就多少。生成出新的容器你可以使用,然后到時候你又可以打包成鏡像。有了鏡像這個功能,為生產(chǎn)提供了很好的打包、迭代、傳遞方式。

Docker 倉庫 - Registry

Registry就是倉庫的意思,我們上面提到docker有鏡像,那么鏡像會因為業(yè)務(wù)的需要以不同類型的方式存在。所以,這么多類型的鏡像如果沒有一個很好的機制去管理,那么肯定會亂套。好比一生產(chǎn)車間,生產(chǎn)需要各種各樣的螺絲釘、齒輪等配件,如果沒有一個很好的倉庫管理員負責(zé)對配件進行管理,那么車間里將亂七八糟。同樣的,docker 鏡像也需要標準化管理,那么負責(zé)這塊功能的模塊就是Registry。不過,要注意的是Registry分共有和私有兩種。Docker Hub(https://hub.docker.com/) 是默認的 Registry,由 Docker 公司自己維護,上面有數(shù)以萬計的鏡像,用戶可以自由下載和使用。 不過,使用公有鏡像速度會很慢(加上GFW的原因),一般公司內(nèi)部使用docker的話都得搭建私有倉庫,不然很影響效率。

Docker 容器 - Container

Container就是容器實例了,類比KVM生成的虛擬機。Container是運行時狀態(tài),我們可以通過docker命令和API去控制和改變Container的狀態(tài),比如start、stop等等。上面所講的client、daemon、image 和registry都是為了Container的運行穩(wěn)定而服務(wù)的。

以上就是Docker容器的由來的詳細介紹了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!

分享文章:Docker容器的由來
分享URL:http://bm7419.com/article24/psddce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、標簽優(yōu)化關(guān)鍵詞優(yōu)化、網(wǎng)站策劃、手機網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司