docker 入門(mén)(二):docker 和 沙盒油航、虛擬機(jī)以及 Kubernetes 的關(guān)系

轉(zhuǎn)載請(qǐng)注明出處:http://www.reibang.com/p/d219f35d37e1


做開(kāi)發(fā)的基本都聽(tīng)說(shuō)過(guò)沙盒 (Sandbox) 和虛擬機(jī) (Virtual Machine早芭,簡(jiǎn)稱(chēng) VM) ,如今容器技術(shù)很火恬叹,其中以 docker 最受大家歡迎。作為一種集群管理工具同眯,K8s 最近也是火的不要不要的绽昼。 我們經(jīng)常會(huì)講 docker 和 K8s 聯(lián)系起來(lái),那么兩者之間又存在什么關(guān)聯(lián)呢须蜗?

一硅确、為什么引入Sandbox 和 VM?

  • 引入 Sandbox 目的:從資源利用的角度看明肮,如何限制一個(gè)進(jìn)程或者一組進(jìn)程可以使用哪些資源是一個(gè)亟待解決的問(wèn)題疏魏,即隔離。Sandbox將一個(gè)應(yīng)用程序或者一組應(yīng)用程序隔離在一個(gè)受限的環(huán)境中晤愧,使其無(wú)法逃逸大莫;
  • 引入 VM 目的 :比如開(kāi)發(fā)人員用的電腦??是 Windows OS,但是開(kāi)發(fā)需要用到 Linux 操作系統(tǒng)官份,這時(shí)候就可以在 Windows OS 上安裝一個(gè) VM 來(lái)虛擬出 Linux 環(huán)境只厘。

二、Sandbox舅巷、VM羔味、容器、Docker 之間的關(guān)聯(lián)

首先Sandbox 和 VM都是屬于虛擬技術(shù)钠右,用來(lái)虛擬軟件運(yùn)行環(huán)境并具有資源隔離的功能赋元。Sandbox 比較“輕”(只需要虛擬出一個(gè)小的環(huán)境)且一旦退出就釋放之前占用的資源;VM 則比較重(虛擬出整個(gè)操作系統(tǒng),相當(dāng)于子電腦)搁凸。關(guān)于 Sandbox 和 VM 的區(qū)別可以參考博客:http://www.reibang.com/p/6acdfd60b014媚值。
容器是屬于 Sandbox 的一種。顧名思義护糖,沙盒就是能夠像一個(gè)集裝箱一樣褥芒,把你的應(yīng)用“裝”起來(lái)的技術(shù)。這樣嫡良,應(yīng)用與應(yīng)用之間锰扶,就因?yàn)橛辛诉吔缍恢劣谙嗷ジ蓴_;而被裝進(jìn)集裝箱的應(yīng)用寝受,也可以被方便地搬來(lái)搬去坷牛。容器技術(shù)的核心功能,就是通過(guò)約束和修改進(jìn)程的動(dòng)態(tài)表現(xiàn)很澄,從而為其創(chuàng)造出一個(gè)“邊界”京闰。正是因?yàn)檫@個(gè)邊界才會(huì)讓容器里面的程序看不到宿主機(jī)上其他的程序從而給程序一種它就是在一個(gè)獨(dú)立的操作系統(tǒng)上的假象。容器具有如下幾個(gè)優(yōu)點(diǎn):

  • 啟動(dòng)速度快痴怨;
  • 對(duì)硬件資源利用率高忙干,一臺(tái)主機(jī)甚至可以啟用上千個(gè) Docker器予,且用完即釋放資源浪藻;
  • 占用空間小;
容器 V.S. 虛擬機(jī)

Docker 是一種輕量級(jí)的虛擬化技術(shù),即容器技術(shù)乾翔。隨著 Docker 的開(kāi)源爱葵,docker 憑借其“輕”的特點(diǎn)得到迅速的普及。

這三個(gè)優(yōu)點(diǎn)恰是 VM 的缺點(diǎn)反浓。


三萌丈、Docker 的功能和特點(diǎn)

Docker 原意是指處理碼頭集裝箱的工人。首先需要注意的是雷则,Docker 本身不是容器辆雾,而是一個(gè)開(kāi)源的應(yīng)用容器引擎。Docker 讓開(kāi)發(fā)者可以以統(tǒng)一的方式 打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中月劈,然后發(fā)布到任何安裝了docker引擎的服務(wù)器上(包括流行的Linux機(jī)器度迂、windows機(jī)器),也可以實(shí)現(xiàn)虛擬化猜揪。從這個(gè)描述可以看出 Docker 的幾種常用任務(wù):

  • 創(chuàng)建容器(自己創(chuàng)建惭墓、或者從容器倉(cāng)庫(kù)中拉取)而姐;
  • 打包容器(將應(yīng)用及其依賴(lài)打包成一個(gè)鏡像)腊凶;
  • 發(fā)布容器(發(fā)布在另一個(gè) docker 引擎上運(yùn)行)。
Docker

Docker 的兩句口號(hào)很準(zhǔn)確地描述了其功能:

1. Build, ship and run
顧名思義,創(chuàng)建钧萍、運(yùn)輸和運(yùn)行褐缠。
舉個(gè)例子來(lái)理解:比如說(shuō)我在 A 地建好了一個(gè)廠區(qū),該廠區(qū)主要的是車(chē)間划煮,其次還有一些配套的生活設(shè)施(比如食堂送丰、超市、宿舍弛秋、水電等)∑黪铮現(xiàn)在我要將廠遷到 B 地,按照常規(guī)思路就是把 A 地的車(chē)間拆了運(yùn)到 B 地重新組裝蟹略、并在 B 地建好配套的生活設(shè)施登失,工程量明顯很大。假設(shè)現(xiàn)在有一種魔法能夠在A地將車(chē)間及其配套的生活設(shè)施復(fù)制一份并打包成一個(gè)鏡像 image(文件)挖炬,然后將該鏡像遷移到 B 地揽浙,這樣在B地馬上就能夠投入使用,省去了拆機(jī)意敛、重裝以及搭建配套生活設(shè)施的工作馅巷,非常方便快捷。
現(xiàn)在我們將車(chē)間類(lèi)比成一個(gè)application草姻,將配套的生活設(shè)施類(lèi)比成依賴(lài)钓猬,那么docker 就是這種魔法

2. Build once, run anywhere
顧名思義撩独,一次創(chuàng)建敞曹、隨地運(yùn)行。
我們知道車(chē)間是用于工業(yè)生產(chǎn)的综膀,即一個(gè)application澳迫。在這個(gè)世界,還存在很多其他的application剧劝,比如學(xué)校橄登、醫(yī)院、寫(xiě)字樓讥此、商場(chǎng)拢锹、體育場(chǎng)等,它們各自負(fù)責(zé)不同的用途暂论。假設(shè)這些 application 都是能夠共享的面褐,那么這個(gè)效率將會(huì)很高,比如國(guó)家A需要用到體育館取胎,可以從國(guó)家B復(fù)制一個(gè)過(guò)來(lái)展哭;國(guó)家B需要用到學(xué)校湃窍,可以從國(guó)家A復(fù)制一個(gè)過(guò)來(lái)。Docker 使用的就是這種理念匪傍,Docker 中包含三個(gè)核心部分:

  • 鏡像文件(image):一個(gè) application 打包成一個(gè)鏡像文件您市;
  • 容器(Container):一個(gè) application 運(yùn)行在一個(gè)容器中,容器之間互不影響役衡;
  • 鏡像倉(cāng)庫(kù)(Repository):存儲(chǔ)鏡像文件的倉(cāng)庫(kù)茵休,就像是圖書(shū)館。

鏡像倉(cāng)庫(kù)(Repository)可以是私有的(比如本地機(jī)器的 Docker repository)手蝎,也可以是公有的(比如 Docker 官方提供的Docker Hub榕莺、第三方的 Hub)。負(fù)責(zé)管理鏡像倉(cāng)庫(kù)(Repository)的是 Docker Registry 服務(wù)(就像是圖書(shū)館管理員)棵介。Docker 官方提供的 Docker Hub 對(duì)于鏡像來(lái)源有著嚴(yán)格的把控钉鸯,有很多高質(zhì)量的 application 鏡像,也是開(kāi)發(fā)人員用的最多的public registry 服務(wù)邮辽。


四唠雕、使用 Kubernetes 管理 Docker

那么為什么需要 Kubernetes 呢?就在 Docker 容器技術(shù)被炒得熱火朝天之時(shí)吨述,大家發(fā)現(xiàn)岩睁,如果想要將 Docker 應(yīng)用于具體的業(yè)務(wù)實(shí)現(xiàn)(當(dāng)容器和服務(wù)器的數(shù)量達(dá)到一定規(guī)模的時(shí)候,就會(huì)碰到管理的
問(wèn)題揣云,即如何有效管理大量的服務(wù)器和容器捕儒,保證應(yīng)用的穩(wěn)定運(yùn)行、方便升級(jí)和故障的快速解決)灵再,是存在困難的——編排肋层、管理和調(diào)度等各個(gè)方面都不容易亿笤。于是就迫切需要一套容器編排工具翎迁,能夠?qū)?Docker 和容器進(jìn)行更高級(jí)、靈活的管理净薛。容器編排工具提供圖形化界面或者命令行來(lái)管理容器和服務(wù)器集群汪榔,提供容器配置、任務(wù)發(fā)布肃拜、服務(wù)發(fā)現(xiàn)痴腌、負(fù)載均衡、系統(tǒng)監(jiān)控和故障恢復(fù)燃领、聲明式系統(tǒng)配置以及有關(guān)容器部署和性能的規(guī)則和約束定義機(jī)制等士聪。
就在這個(gè)時(shí)候, Google開(kāi)發(fā)的Kubernetes 從眾多編排工具中脫穎而出猛蔽,贏下了容器編排工具大戰(zhàn)剥悟。Kubernetes 是一種基于容器的集群管理平臺(tái)灵寺。Kubernetes 是希臘語(yǔ),意為“舵手区岗、領(lǐng)航員”略板,大家都習(xí)慣將 Kubernetes 簡(jiǎn)稱(chēng)為K8s(ubernete 包含8個(gè)字母)。K8s 最初由 Google 創(chuàng)建而后加入 openstack 基金會(huì)并發(fā)布了 K8s V1.0慈缔。


五叮称、Docker Swarm V.S. Kubernetes

Docker 公司自己有一款名為 Docker Swarm的產(chǎn)品,它是一個(gè)容器集群和調(diào)度工具藐鹤,功能類(lèi)似于Kubernetes瓤檐。相比 Kubernetes,Swarm在集群搭建和使用上要相對(duì)簡(jiǎn)單一些娱节,學(xué)習(xí)和部署成本相對(duì)低一些距帅。較新版本的Docker已經(jīng)集成了Swarm。Swarm支持跨多個(gè)主機(jī)進(jìn)行編排括堤,管理較小規(guī)模的容器集群也綽綽有余碌秸,對(duì)于初學(xué)者也可以很快的部署和運(yùn)行。

六悄窃、總結(jié)

  • Docker 容器技術(shù)主要作用是隔離讥电,通過(guò)對(duì)系統(tǒng)的關(guān)鍵資源的隔離,實(shí)現(xiàn)了主機(jī)抽象轧抗;
  • 容器集群和調(diào)度工具(比如 K8s 和 Docker Swarm)是在抽象主機(jī)基礎(chǔ)上恩敌,實(shí)現(xiàn)了集群抽象

筆者水平有限横媚,如有錯(cuò)誤纠炮,敬請(qǐng)指正!

參考:
https://www.cnblogs.com/misswangxing/p/10669444.html
https://blog.csdn.net/fly910905/article/details/98962455

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末灯蝴,一起剝皮案震驚了整個(gè)濱河市恢口,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌穷躁,老刑警劉巖耕肩,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異问潭,居然都是意外死亡猿诸,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)狡忙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)梳虽,“玉大人,你說(shuō)我怎么就攤上這事灾茁〈芫酰” “怎么了是复?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)竖螃。 經(jīng)常有香客問(wèn)我淑廊,道長(zhǎng),這世上最難降的妖魔是什么特咆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任季惩,我火速辦了婚禮,結(jié)果婚禮上腻格,老公的妹妹穿的比我還像新娘画拾。我一直安慰自己,他們只是感情好菜职,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布青抛。 她就那樣靜靜地躺著,像睡著了一般酬核。 火紅的嫁衣襯著肌膚如雪蜜另。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天嫡意,我揣著相機(jī)與錄音举瑰,去河邊找鬼。 笑死蔬螟,一個(gè)胖子當(dāng)著我的面吹牛此迅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旧巾,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼耸序,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鲁猩?” 一聲冷哼從身側(cè)響起坎怪,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绳匀,沒(méi)想到半個(gè)月后芋忿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體炸客,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疾棵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痹仙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片是尔。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖开仰,靈堂內(nèi)的尸體忽然破棺而出拟枚,到底是詐尸還是另有隱情薪铜,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布恩溅,位于F島的核電站隔箍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏脚乡。R本人自食惡果不足惜蜒滩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奶稠。 院中可真熱鬧俯艰,春花似錦、人聲如沸锌订。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辆飘。三九已至啦辐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蜈项,已是汗流浹背昧甘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留战得,地道東北人充边。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像常侦,于是被迫代替她去往敵國(guó)和親浇冰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344