今天小編給大家分享的是Docker容器的由來的詳細介紹,相信大部分人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。
公司主營業(yè)務:成都網(wǎng)站設計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出哈巴河免費做網(wǎng)站回饋大家。
一、docker的介紹
2010年dotCloud公司在舊金山成立,PAAS平臺的服務供應商;2013年dotCloud更名為Docker股份有限公司(Docker,Inc)。Docker公司專注開源容器引擎的開發(fā),他們的容器引擎產(chǎn)品就叫docker,基于go語言,并遵從Apache2.0協(xié)議。
創(chuàng)始人 Solomon
上一篇文章我們跟大家介紹了什么是容器技術,容器技術的底層支持其實就是Linux Container(LXC)技術,LXC技術在 linux 2.6 的 kernel 里就已經(jīng)存在了,但是LXC設計之初并非為專門為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)品,那么要關心的的東西太多了。機房選址、服務器硬件、網(wǎng)絡設備、布線、上架、裝系統(tǒng)、搭環(huán)境、開發(fā)、測試... 只要是跟IT相關的你都得去關心安排好。這個時期是傳統(tǒng)IT管理與建設的初期,IT資源成本很高,涉及的人才成本也高。
圖1 早期機房建設和維護工作
云計算IAAS時代,AWS、騰訊云、阿里云的出現(xiàn)解決了早期傳統(tǒng)IT管理的痛苦,用戶有了云將不再面對硬件底層管理的問題,開發(fā)和測試都是在云主機上操作。然而,云主機就是一個個不一樣的操作系統(tǒng),硬件底層管理問題沒有了,但是中間件相關的問題依然存在!IT運維人員要為開發(fā)測試人員提供完善的、穩(wěn)定的云主機環(huán)境,這個過程也是相對復雜的,因為開發(fā)測試人員要求的環(huán)境也是多種多樣,IT運維人員需要花費一定的時間和精力去維護和完善。當前大部分公司還是處在這個階段。
虛擬機 vs 容器 架構(gòu)區(qū)別
容器PAAS時代,這個時代即將到來!(其實,已經(jīng)來了)。容器技術的出現(xiàn)就是為了解決上面兩個時期遺留的痛點問題。有了容器技術,開發(fā)者更加專注于程序的開發(fā)和測試,開發(fā)結(jié)束后能快速方便的把開發(fā)好的APP遷移到另外一個容器環(huán)境里。簡單來說,開發(fā)人員只需為應用創(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公司之所以能占領先機搞定,主要是因為它在這領域有一定的積累,之前也跟CoreOS合作過(CoreOS也是做容器技術方面很牛的公司,后來跟docker分道揚鑣,Rocket是CoreOS發(fā)布的跟docker競爭的產(chǎn)品)。所以,在云計算PAAS風口上,docker在合適的時間通過自己的技術積累發(fā)布了這套開源容器管理引擎,想不出名也難了!
二、 docker的組成架構(gòu)
docker設想是交付運行環(huán)境如同海運,OS如同一個貨輪,每一個在OS基礎上的軟件都如同一個集裝箱,用戶可以通過標準化手段自由組裝運行環(huán)境,同時集裝箱的內(nèi)容可以由用戶自定義,也可以由專業(yè)人員制造。這樣,交付一個軟件,就是一系列標準化組件的集合的交付,如同樂高積木,用戶只需要選擇合適的積木組合,并且在最頂端署上自己的名字(最后個標準化組件是用戶的app)。
要實現(xiàn)這樣的集裝箱貨輪海運的功能,那么docker是如何去設計如何區(qū)做的呢?我們先從docker的架構(gòu)說起。
docker主要由以下模塊組成:
Docker 客戶端 - Client
Docker 服務器 - Docker daemon
Docker 鏡像 - Image
Docker 倉庫 - Registry
Docker 容器 - Container
docker經(jīng)典架構(gòu)圖
Docker 采用的是 (C/S) 架構(gòu)模式,使用遠程REST API來管理和創(chuàng)建Docker容器。既然是采用REST模式,所以客戶端和服務端可以不用在一個host上,可以分布式管理部署。
Docker 客戶端 - Client
docker的客戶端分命令和API兩種類型。docker 的命令一般在系統(tǒng)安裝好docker包后就可以使用,linux下直接是docker開頭,可以用docker --help命令查看所有能運行的命令。docker的命令也非常好記,跟linux命令一樣,用多了自然就會了;而且學習docker最好的也是從命令入手。
docker的API一般是寫腳本或者開發(fā)的時候用比較多,而且都是REST風格的,用命令交互的話可以結(jié)合CURL使用。用API能做創(chuàng)建、刪除、修改、查詢等一系列操作,不過還得結(jié)合編程語言使用才會比較強大。
Docker 服務器 - Docker daemon
docker daemon就是docker的主服務,docker.service。在linux操作系統(tǒng)下,安裝好了docker服務我們就可以使用systemctl start/status/stop docker.service去操作docker的服務。這個服務非常重要,如果你系統(tǒng)的docker.service存在異常,那么你的所有docker關聯(lián)的組件都會出錯。
Docker 鏡像 - Image
docker的鏡像這個很容易理解,如果你玩過vmware或者openstack的話就很容易懂了,vmware和openstack都有鏡像模版的概念,我們要衍生創(chuàng)建虛擬機,就可以通過鏡像模版來快速部署和生成相同類型的VM。docker的image也是一個道理,通過不同類型的模版,比如redis鏡像、nginx鏡像來快速創(chuàng)建出容器。好比復制克隆,只要資源夠,想生成多少就多少。生成出新的容器你可以使用,然后到時候你又可以打包成鏡像。有了鏡像這個功能,為生產(chǎn)提供了很好的打包、迭代、傳遞方式。
Docker 倉庫 - Registry
Registry就是倉庫的意思,我們上面提到docker有鏡像,那么鏡像會因為業(yè)務的需要以不同類型的方式存在。所以,這么多類型的鏡像如果沒有一個很好的機制去管理,那么肯定會亂套。好比一生產(chǎn)車間,生產(chǎn)需要各種各樣的螺絲釘、齒輪等配件,如果沒有一個很好的倉庫管理員負責對配件進行管理,那么車間里將亂七八糟。同樣的,docker 鏡像也需要標準化管理,那么負責這塊功能的模塊就是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)定而服務的。
以上就是Docker容器的由來的詳細介紹了,看完之后是否有所收獲呢?如果想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊!