Docker學(xué)習(xí)(一)-基本概念

先行奉上我自己學(xué)習(xí)Docker的思維導(dǎo)圖


Docker學(xué)習(xí)思維導(dǎo)圖

思維導(dǎo)圖百度云地址:提取碼為d5jh伍玖,有需要的可以自取

下面我將按照思維導(dǎo)圖的一步步展開(kāi)Docker的相關(guān)知識(shí)嫩痰;

首先,我們需要知道Docker是什么?

Docker 使用 Google 公司推出的 Go 語(yǔ)言 進(jìn)行開(kāi)發(fā)實(shí)現(xiàn)窍箍,基于 Linux 內(nèi)核的 cgroup串纺,namespace,以及 AUFS 類(lèi)的 Union FS 等技術(shù)椰棘,對(duì)進(jìn)程進(jìn)行封裝隔離纺棺,屬于 操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程晰搀,因此也稱(chēng)其為容器五辽。最初實(shí)現(xiàn)是基于 LXC办斑,從 0.7 版本以后開(kāi)始去除 LXC外恕,轉(zhuǎn)而使用自行開(kāi)發(fā)的 libcontainer,從 1.11 開(kāi)始乡翅,則進(jìn)一步演進(jìn)為使用 runC 和 containerd鳞疲。

通俗的講,就是一個(gè)新的虛擬化技術(shù)蠕蚜。

它的架構(gòu)如下圖所示

Docker架構(gòu)圖

那么Docker和傳統(tǒng)的虛擬機(jī)技術(shù)有什么區(qū)別呢尚洽?

Docker和傳統(tǒng)的虛擬化技術(shù)的區(qū)別在于傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后,在其上運(yùn)行一個(gè)完整操作系統(tǒng)靶累,在該系統(tǒng)上再運(yùn)行所需應(yīng)用進(jìn)程腺毫;而容器內(nèi)的應(yīng)用進(jìn)程直接運(yùn)行于宿主的內(nèi)核癣疟,容器內(nèi)沒(méi)有自己的內(nèi)核,而且也沒(méi)有進(jìn)行硬件虛擬潮酒。因此容器要比傳統(tǒng)虛擬機(jī)更為輕便睛挚。

具體的對(duì)比如下圖所示:


傳統(tǒng)虛擬技術(shù)


Docker

通俗解釋?zhuān)篋ocker的虛擬化更加輕量級(jí),是容器級(jí)別急黎,進(jìn)程級(jí)別的虛擬化扎狱,傳統(tǒng)的虛擬化是操作系統(tǒng)的虛擬化,也就是說(shuō)Docker的虛擬化只虛擬化應(yīng)用勃教,不用復(fù)制一套操作系統(tǒng)淤击。

既然如此,那么Docker的具體作用體現(xiàn)在哪些方面呢?

Docker能夠解決傳統(tǒng)虛擬技術(shù)的如下弊端:

1故源、更高效的利用系統(tǒng)資源

2污抬、更快速的啟動(dòng)時(shí)間

3、一致的運(yùn)行環(huán)境

4心软、持續(xù)交付和部署

5壕吹、更輕松的遷移

6、更輕松的維護(hù)和擴(kuò)展

Docker 使用的分層存儲(chǔ)以及鏡像的技術(shù)删铃,使得應(yīng)用重復(fù)部分的復(fù)用更為容易耳贬,也使得應(yīng)用的維護(hù)更新更加簡(jiǎn)單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得非常簡(jiǎn)單猎唁。此外咒劲,Docker 團(tuán)隊(duì)同各個(gè)開(kāi)源項(xiàng)目團(tuán)隊(duì)一起維護(hù)了一大批高質(zhì)量的 官方鏡像,既可以直接在生產(chǎn)環(huán)境使用诫隅,又可以作為基礎(chǔ)進(jìn)一步定制腐魂,大大的降低了應(yīng)用服務(wù)的鏡像制作成本

那么Docker是通過(guò)那些方式來(lái)實(shí)現(xiàn)這種虛擬化呢?

這里我們介紹Docker的三大核心概念:

1逐纬、鏡像:鏡像是Docker中最為核心的一個(gè)技術(shù)蛔屹,其核心是采用了聯(lián)合文件系統(tǒng)實(shí)現(xiàn)的分層存儲(chǔ)技術(shù),每一個(gè)鏡像的構(gòu)建都是由多層只讀層組成的;Docker 鏡像是一個(gè)特殊的文件系統(tǒng)豁生,除了提供容器運(yùn)行時(shí)所需的程序兔毒、庫(kù)、資源甸箱、配置等文件外育叁,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量芍殖、用戶(hù)等)豪嗽。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。

因?yàn)殓R像包含操作系統(tǒng)完整的 root 文件系統(tǒng)龟梦,其體積往往是龐大的隐锭,因此在 Docker 設(shè)計(jì)時(shí),就充分利用 Union FS 的技術(shù)计贰,將其設(shè)計(jì)為分層存儲(chǔ)的架構(gòu)成榜。所以嚴(yán)格來(lái)說(shuō),鏡像并非是像一個(gè) ISO 那樣的打包文件蹦玫,鏡像只是一個(gè)虛擬的概念赎婚,其實(shí)際體現(xiàn)并非由一個(gè)文件組成,而是由一組文件系統(tǒng)組成樱溉,或者說(shuō)挣输,由多層文件系統(tǒng)聯(lián)合組成。

鏡像構(gòu)建時(shí)福贞,會(huì)一層層構(gòu)建撩嚼,前一層是后一層的基礎(chǔ)。每一層構(gòu)建完就不會(huì)再發(fā)生改變挖帘,后一層上的任何改變只發(fā)生在自己這一層完丽。比如,刪除前一層文件的操作拇舀,實(shí)際不是真的刪除前一層的文件逻族,而是僅在當(dāng)前層標(biāo)記為該文件已刪除。在最終容器運(yùn)行的時(shí)候骄崩,雖然不會(huì)看到這個(gè)文件聘鳞,但是實(shí)際上該文件會(huì)一直跟隨鏡像。因此要拂,在構(gòu)建鏡像的時(shí)候抠璃,需要額外小心,每一層盡量只包含該層需要添加的東西脱惰,任何額外的東西應(yīng)該在該層構(gòu)建結(jié)束前清理掉搏嗡。

分層存儲(chǔ)的特征還使得鏡像的復(fù)用、定制變的更為容易拉一。甚至可以用之前構(gòu)建好的鏡像作為基礎(chǔ)層采盒,然后進(jìn)一步添加新的層,以定制自己所需的內(nèi)容舅踪,構(gòu)建新的鏡像纽甘。

2良蛮、容器:鏡像(Image)和容器(Container)的關(guān)系抽碌,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的 類(lèi) 和 實(shí)例 一樣,鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體货徙。容器可以被創(chuàng)建左权、啟動(dòng)、停止痴颊、刪除赏迟、暫停等。

容器的實(shí)質(zhì)是進(jìn)程蠢棱,但與直接在宿主執(zhí)行的進(jìn)程不同锌杀,容器進(jìn)程運(yùn)行于屬于自己的獨(dú)立的 命名空間。因此容器可以擁有自己的 root 文件系統(tǒng)泻仙、自己的網(wǎng)絡(luò)配置糕再、自己的進(jìn)程空間,甚至自己的用戶(hù) ID 空間玉转。容器內(nèi)的進(jìn)程是運(yùn)行在一個(gè)隔離的環(huán)境里突想,使用起來(lái),就好像是在一個(gè)獨(dú)立于宿主的系統(tǒng)下操作一樣究抓。這種特性使得容器封裝的應(yīng)用比直接在宿主運(yùn)行更加安全猾担。也因?yàn)檫@種隔離的特性,很多人初學(xué) Docker 時(shí)常常會(huì)混淆容器和虛擬機(jī)刺下。

前面講過(guò)鏡像使用的是分層存儲(chǔ)绑嘹,容器也是如此。每一個(gè)容器運(yùn)行時(shí)橘茉,是以鏡像為基礎(chǔ)層圾叼,在其上創(chuàng)建一個(gè)當(dāng)前容器的存儲(chǔ)層,我們可以稱(chēng)這個(gè)為容器運(yùn)行時(shí)讀寫(xiě)而準(zhǔn)備的存儲(chǔ)層為 容器存儲(chǔ)層捺癞。

容器存儲(chǔ)層的生存周期和容器一樣夷蚊,容器消亡時(shí),容器存儲(chǔ)層也隨之消亡髓介。因此惕鼓,任何保存于容器存儲(chǔ)層的信息都會(huì)隨容器刪除而丟失。

按照 Docker 最佳實(shí)踐的要求唐础,容器不應(yīng)該向其存儲(chǔ)層內(nèi)寫(xiě)入任何數(shù)據(jù)箱歧,容器存儲(chǔ)層要保持無(wú)狀態(tài)化。所有的文件寫(xiě)入操作一膨,都應(yīng)該使用 數(shù)據(jù)卷(Volume)呀邢、或者綁定宿主目錄,在這些位置的讀寫(xiě)會(huì)跳過(guò)容器存儲(chǔ)層豹绪,直接對(duì)宿主(或網(wǎng)絡(luò)存儲(chǔ))發(fā)生讀寫(xiě)价淌,其性能和穩(wěn)定性更高。

數(shù)據(jù)卷的生存周期獨(dú)立于容器,容器消亡蝉衣,數(shù)據(jù)卷不會(huì)消亡括尸。因此,使用數(shù)據(jù)卷后病毡,容器刪除或者重新運(yùn)行之后濒翻,數(shù)據(jù)卻不會(huì)丟失。

3啦膜、倉(cāng)庫(kù):鏡像構(gòu)建完成后有送,可以很容易的在當(dāng)前宿主機(jī)上運(yùn)行,但是僧家,如果需要在其它服務(wù)器上使用這個(gè)鏡像娶眷,我們就需要一個(gè)集中的存儲(chǔ)、分發(fā)鏡像的服務(wù)啸臀,Docker Registry 就是這樣的服務(wù)届宠。簡(jiǎn)單理解為git倉(cāng)庫(kù)或者maven私服即可。

參考文章:Docker底層實(shí)現(xiàn)乘粒、這可能是最為詳細(xì)的Docker入門(mén)吐血總結(jié)

未完待續(xù)豌注。。灯萍。轧铁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市旦棉,隨后出現(xiàn)的幾起案子齿风,更是在濱河造成了極大的恐慌,老刑警劉巖绑洛,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件救斑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡真屯,警方通過(guò)查閱死者的電腦和手機(jī)脸候,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绑蔫,“玉大人运沦,你說(shuō)我怎么就攤上這事∨渖睿” “怎么了携添?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)篓叶。 經(jīng)常有香客問(wèn)我烈掠,道長(zhǎng)羞秤,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任向叉,我火速辦了婚禮,結(jié)果婚禮上嗦董,老公的妹妹穿的比我還像新娘母谎。我一直安慰自己,他們只是感情好京革,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布奇唤。 她就那樣靜靜地躺著,像睡著了一般匹摇。 火紅的嫁衣襯著肌膚如雪咬扇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天廊勃,我揣著相機(jī)與錄音懈贺,去河邊找鬼。 笑死坡垫,一個(gè)胖子當(dāng)著我的面吹牛梭灿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冰悠,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼堡妒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了溉卓?” 一聲冷哼從身側(cè)響起皮迟,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桑寨,沒(méi)想到半個(gè)月后伏尼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尉尾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年烦粒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片代赁。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扰她,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芭碍,到底是詐尸還是另有隱情徒役,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布窖壕,位于F島的核電站忧勿,受9級(jí)特大地震影響杉女,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸳吸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一熏挎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晌砾,春花似錦坎拐、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至呕乎,卻和暖如春积担,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猬仁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工帝璧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人湿刽。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓聋溜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親叭爱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撮躁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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