學(xué)習(xí)筆記:Docker (1)理論

docker開發(fā)技術(shù)棧

Go/Swarm/Compose/Machine/mesos/k8s/CI/DI...

Docker是什么兢仰?

1.Q:為什么會(huì)有Docker出現(xiàn)?

一款產(chǎn)品從開發(fā)到上線,從操作系統(tǒng)鲤妥,到運(yùn)行環(huán)境咸这,再到應(yīng)用配置夷恍。作為開發(fā)+運(yùn)維之間的協(xié)作我們需要關(guān)心很多東西,特別是各種版本的迭代之后媳维,不同版本環(huán)境的兼容酿雪,對(duì)運(yùn)維人員都是考驗(yàn)遏暴。

Docker對(duì)此給出了一個(gè)標(biāo)準(zhǔn)化的解決方案。

環(huán)境配置如此麻煩指黎,換一臺(tái)機(jī)器朋凉,就要重來一次,費(fèi)時(shí)費(fèi)力醋安。很多人想到杂彭,能不能從根本上解決問題,軟件可以帶環(huán)境安裝茬故?也就是說盖灸,安裝的時(shí)候,把原始環(huán)境一摸一樣的復(fù)制過來磺芭。開發(fā)人員利用Docker可以消除協(xié)作編碼時(shí)“在我的機(jī)器上可以正常工作”的問題。

從“僅提交代碼”到“提交代碼和整套環(huán)境”醉箕。

2.Docker的理念

Docker是基于Go語言實(shí)現(xiàn)的云開源項(xiàng)目钾腺。

Docker的主要目標(biāo)是“Build, Ship and Run Any App, Anywhere”,也就是通過對(duì)應(yīng)用組件的封裝讥裤、分發(fā)放棒、部署、運(yùn)行等生命周期的管理己英,使用戶的App(可以是一個(gè)Web應(yīng)用貨數(shù)據(jù)庫(kù)應(yīng)用等等)及其運(yùn)行環(huán)境能夠做到“一次封裝间螟,到處運(yùn)行”。

Linux容器技術(shù)的出現(xiàn)就解決了這樣一個(gè)問題损肛,而Docker就是在它的基礎(chǔ)上發(fā)展過來的厢破。將應(yīng)用運(yùn)行在Docker容器上面,而Docker容器在任何操作系統(tǒng)上都是一致的治拿,這就實(shí)現(xiàn)了跨平臺(tái)摩泪、跨服務(wù)器,只需要一次配置好環(huán)境劫谅,換到別的機(jī)器上就可以一鍵部署好见坑,大大簡(jiǎn)化了操作。

3.Docker是什么捏检?(A:容器)

解決了運(yùn)行環(huán)境和配置問題的軟件容器荞驴,方便做持續(xù)集成并有助于整體發(fā)布的容器虛擬化技術(shù)。

Docker能干什么贯城?

1.虛擬機(jī)

帶環(huán)境(軟件&硬件)安裝的一種解決方案熊楼,它可以在一種操作系統(tǒng)里面運(yùn)行另一種操作系統(tǒng)。對(duì)于底層系統(tǒng)來說冤狡,虛擬機(jī)就是一個(gè)普通文件孙蒙,不需要了就刪掉项棠,對(duì)其他部分毫無影響。

2.虛擬機(jī)的缺點(diǎn)

1.資源占用多挎峦;2.冗余步驟多香追;3.啟動(dòng)慢。

3.Linux容器(Linux Containers坦胶,縮寫為L(zhǎng)XC)

由于虛擬機(jī)存在一些缺點(diǎn)透典,Linux發(fā)展出的另一種虛擬化技術(shù)。

Linux容器不是模擬一個(gè)完整的操作系統(tǒng)顿苇,而是對(duì)進(jìn)程(應(yīng)用)進(jìn)行隔離峭咒。有了容器,就可以將軟件運(yùn)行所需的所有資源打包到一個(gè)隔離的容器中纪岁。容器與虛擬機(jī)不同凑队,不需要捆綁一整套操作系統(tǒng),只需要軟件工作所需的庫(kù)資源和設(shè)置幔翰。

系統(tǒng)因此而變得高效輕量漩氨,并保證部署在任何環(huán)境中的軟件都能始終如一地運(yùn)行。

4.傳統(tǒng)虛擬化方式和Docker的區(qū)別:

1.傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后遗增,在其上運(yùn)行一個(gè)完整操作系統(tǒng)叫惊,在該系統(tǒng)上再運(yùn)行所需應(yīng)用進(jìn)程。

2.容器內(nèi)的應(yīng)用進(jìn)程直接運(yùn)行于宿主的內(nèi)核做修,容器內(nèi)沒有自己的內(nèi)核霍狰,而且也沒有進(jìn)行硬件虛擬。因此容器要比傳統(tǒng)虛擬機(jī)更為輕便饰及。

3.每個(gè)容器之間互相隔離蔗坯,每個(gè)容器有自己的文件系統(tǒng),容器之間進(jìn)程不會(huì)互相影響旋炒,能區(qū)分計(jì)算資源(耦合低)步悠。虛擬機(jī)為minute級(jí)別,Docker為second級(jí)別瘫镇。

5.開發(fā)/運(yùn)維(DevOps)

Development Operations鼎兽,即開發(fā)自己運(yùn)維。一次構(gòu)建铣除,隨處運(yùn)行谚咬。

6.企業(yè)級(jí)

新浪、美團(tuán)尚粘、蘑菇街......

PS:Docker的實(shí)質(zhì)可以看作一個(gè)精簡(jiǎn)版的Linux系統(tǒng)择卦,僅有其內(nèi)核。(eg:CentOS完整鏡像為4GB,基于容器的虛擬化秉继,其基礎(chǔ)鏡像僅170MB左右祈噪。)

  • 輕量、秒級(jí)的快速啟動(dòng)速度尚辑。
  • 簡(jiǎn)單辑鲤、易用、活躍的社區(qū)杠茬。
  • 標(biāo)準(zhǔn)統(tǒng)一的打包/部署/運(yùn)行方案月褥。
  • 鏡像支持增量分發(fā)、易于部署瓢喉。
  • 易于構(gòu)建宁赤,良好的REST API,也很適合自動(dòng)化測(cè)試和持續(xù)集成栓票。
  • 性能决左,尤其是內(nèi)存和IO的開銷。

7.下載&文檔

英文官網(wǎng):https://www.docker.com/
中文官網(wǎng):https://www.docker-cn.com/
Docker倉(cāng)庫(kù)(Docker Hub走贪,即Docker的鏡像倉(cāng)庫(kù)哆窿,類比Github、Maven倉(cāng)庫(kù)):https://hub.docker.com/

Docker的基本組成

1.Docker的架構(gòu)圖

Client: docker build/docker pull/docker run(類比Git Client)
Docker Host:Containers/Images(鏡像)/Docker daemon
Registry(鏡像倉(cāng)庫(kù))

D0780E37DCBFD886DF096B62E9984B9A.jpg

2.Docker三要素

1. 鏡像image

就是一個(gè)只讀的模版厉斟。鏡像可以用來創(chuàng)建Docker容器,一個(gè)鏡像可以創(chuàng)建很多容器强衡。

2.容器container

Docker是利用容器獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用擦秽。容器是用鏡像創(chuàng)建的運(yùn)行實(shí)例。(類比java漩勤,容器即對(duì)象感挥,鏡像即類。)

它可以被啟動(dòng)越败、開始触幼、停止、刪除究飞。每個(gè)容器都是相互隔離的置谦、保證安全的平臺(tái)。可以把容器看作是一個(gè)簡(jiǎn)易版的Linux環(huán)境(包括root用戶權(quán)限亿傅、進(jìn)程空間媒峡、用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。

容器的定義和鏡像幾乎一摸一樣葵擎,也是一堆層的統(tǒng)一視角谅阿,唯一的區(qū)別在于容器的最上層是可讀可寫的。

3.倉(cāng)庫(kù)repository

集中存放鏡像文件的場(chǎng)所。

倉(cāng)庫(kù)(Repository)和倉(cāng)庫(kù)注冊(cè)服務(wù)器(Registry)是有區(qū)別的签餐。Registry上往往存放著多個(gè)Repository寓涨,每個(gè)Repository中又包含了多個(gè)鏡像,每個(gè)鏡像有不同的標(biāo)簽(Tag氯檐,類似版本號(hào))戒良。

倉(cāng)庫(kù)分為公開倉(cāng)庫(kù)(Public)和私有倉(cāng)庫(kù)(Private)兩種形式。最大的公開倉(cāng)庫(kù)是Docker Hub男摧,存放了數(shù)量龐大的鏡像供用戶下載蔬墩,國(guó)內(nèi)的公開倉(cāng)庫(kù)包括阿里云、網(wǎng)易云等耗拓。

3.小結(jié)

需要正確的理解倉(cāng)庫(kù)/鏡像/容器這幾個(gè)概念拇颅。

  • Docker本身是一個(gè)容器運(yùn)行載體或稱之為管理引擎。我們把應(yīng)用程序和配置依賴打包好形成一個(gè)可交付的運(yùn)行環(huán)境乔询,這個(gè)打包好的運(yùn)行環(huán)境就似乎image鏡像文件樟插。只有通過這個(gè)鏡像文件才能生成Docker容器。image文件可以看作是容器的模板竿刁。Docker根據(jù)image文件生成容器的實(shí)例黄锤。同一個(gè)image文件,可以生成多個(gè)同時(shí)運(yùn)行的容器實(shí)例食拜。

  • image文件生成的容器實(shí)例鸵熟,本身也是一個(gè)文件,稱為鏡像文件负甸。

  • 一個(gè)容器運(yùn)行一種服務(wù)流强,當(dāng)我們需要的時(shí)候,就可以通過Docker客戶端創(chuàng)建一個(gè)對(duì)應(yīng)的運(yùn)行實(shí)例呻待,也就是我們的容器打月。

  • 倉(cāng)儲(chǔ),就是放了一堆鏡像的地方蚕捉,我們可以把鏡像發(fā)布到倉(cāng)儲(chǔ)中奏篙,需要的時(shí)候從倉(cāng)儲(chǔ)中拉下來就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迫淹,一起剝皮案震驚了整個(gè)濱河市秘通,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌千绪,老刑警劉巖充易,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異荸型,居然都是意外死亡盹靴,警方通過查閱死者的電腦和手機(jī)炸茧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稿静,“玉大人梭冠,你說我怎么就攤上這事「谋福” “怎么了控漠?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)悬钳。 經(jīng)常有香客問我盐捷,道長(zhǎng),這世上最難降的妖魔是什么默勾? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任碉渡,我火速辦了婚禮,結(jié)果婚禮上母剥,老公的妹妹穿的比我還像新娘滞诺。我一直安慰自己,他們只是感情好环疼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布习霹。 她就那樣靜靜地躺著,像睡著了一般炫隶。 火紅的嫁衣襯著肌膚如雪淋叶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天伪阶,我揣著相機(jī)與錄音爸吮,去河邊找鬼。 笑死望门,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锰霜。 我是一名探鬼主播筹误,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼癣缅!你這毒婦竟也來了厨剪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤友存,失蹤者是張志新(化名)和其女友劉穎祷膳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屡立,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡直晨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勇皇。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡罩句,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敛摘,到底是詐尸還是另有隱情门烂,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布兄淫,位于F島的核電站屯远,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏捕虽。R本人自食惡果不足惜慨丐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望薯鳍。 院中可真熱鬧咖气,春花似錦、人聲如沸挖滤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斩松。三九已至伶唯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惧盹,已是汗流浹背乳幸。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钧椰,地道東北人粹断。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嫡霞,于是被迫代替她去往敵國(guó)和親瓶埋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容