Docker的那些事兒—Docker使用的核心底層技術(7)


上一篇:Docker的那些事兒—Docker使用的核心底層技術(6)


Union file systems

前面介紹了Namespace和Cgroups,這兩項技術都是與容器相關五辽。Docker的一大創(chuàng)新之處采用了——Union file systems(聯合文件系統(tǒng)洒闸,UnionFS)技術。它是實現Docker鏡像的技術基礎,是一種輕量級的高性能分層文件系統(tǒng)抡医,支持對文件系統(tǒng)中的修改作為一次提交來一層層的疊加呼渣,這個特性使得鏡像可以通過分層實現和繼承。Docker鏡像分為基礎鏡像和父鏡像晌区,沒有父鏡像的鏡像被稱為基礎鏡像摩骨。用戶可以基于基礎鏡像來制作各種不同的應用鏡像。這些應用鏡像共享同一個基礎鏡像層朗若,提高了存儲效率恼五。同時UnionFS支持將不同目錄掛載到同一個虛擬文件系統(tǒng)下。

Docker目前支持的UnionFS種類包括AUFS,btrfs,vfs和 DeviceMapper哭懈。

AUFS是一種 Union FS, 簡單來說就是“支持將不同目錄掛載到同一個虛擬文件系統(tǒng)下的文件系統(tǒng)”, AUFS支持為每一個成員目錄設定只讀(Rreadonly)灾馒、讀寫(Readwrite)和寫(Whiteout-able)權限。

典型的Linux啟動時運行需要兩個文件系統(tǒng):bootfs 和rootfs遣总。

bootfs主要包含BootLoader和Kernel, BootLoader主要是引導加載Kernel, 當Boot成功后睬罗,Kernel被加載到內存中,然后bootfs就被Umount掉了彤避。rootfs包含Linux系統(tǒng)中的/dev傅物、/proc、/bin琉预、/etc等標準目錄和文件董饰。

在Docker中,不同的Linux發(fā)行版可以共享bootfs,這是因為bootfs基本是一致的, 只是rootfs存在差別卒暂。例如下圖中的Debian和BusyBox(一種嵌入式Linux)

Linux在啟動后啄栓,首先將rootfs置為 Readonly,進行一系列檢查后將其切換為Readwrite供用戶使用也祠。在Docker中昙楚,也是利用該技術,然后利用Union Mount在Readonly的rootfs文件系統(tǒng)之上掛載Readwrite文件系統(tǒng)诈嘿。并且向上疊加, 使得一組Readonly和一個Readwrite的結構構成一個容器的運行目錄堪旧、每一個被稱作一個文件系統(tǒng)Layer。

AUFS的特性, 使得每一個對Readonly層文件/目錄的修改都只會存在于上層的Writeable層中奖亚。這樣使得多個容器可以共享Readonly文件系統(tǒng)層淳梦。在Docker中,將Readonly的層稱作image昔字,將Writeable層稱作container爆袍。對于容器整體而言,整個rootfs變得是read-write的作郭,但事實上所有的修改都寫入最上層的container中陨囊,image不保存用戶狀態(tài),可以用于模板夹攒、重建和復制蜘醋。

在Docker中,上層的image依賴下層的image芹助, 因此Docker中把下層的image稱作父image堂湖,沒有父image的image稱作Base image。比如上圖中Debian就是Base image状土,執(zhí)行add emacs后生成的image就是執(zhí)行add Apache后生成的image的父image无蜂。因此,當想要從一個image啟動一個容器蒙谓,Docker會先逐次加載其父image直到Base image斥季,用戶的進程運行在Writeable的文件系統(tǒng)層中。這一點累驮,我們在后面講解Docker image時會著重講解酣倾。

下一章節(jié),我們進入Docker鏡像部分學習


下一篇:Docker的那些事兒—測試鏡像(8)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末谤专,一起剝皮案震驚了整個濱河市躁锡,隨后出現的幾起案子,更是在濱河造成了極大的恐慌置侍,老刑警劉巖映之,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拦焚,死亡現場離奇詭異,居然都是意外死亡杠输,警方通過查閱死者的電腦和手機赎败,發(fā)現死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蠢甲,“玉大人僵刮,你說我怎么就攤上這事○信#” “怎么了搞糕?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長能岩。 經常有香客問我寞宫,道長,這世上最難降的妖魔是什么拉鹃? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮鲫忍,結果婚禮上膏燕,老公的妹妹穿的比我還像新娘。我一直安慰自己悟民,他們只是感情好坝辫,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著射亏,像睡著了一般近忙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上智润,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天及舍,我揣著相機與錄音,去河邊找鬼窟绷。 笑死锯玛,一個胖子當著我的面吹牛,可吹牛的內容都是我干的兼蜈。 我是一名探鬼主播攘残,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼为狸!你這毒婦竟也來了歼郭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤辐棒,失蹤者是張志新(化名)和其女友劉穎病曾,沒想到半個月后牍蜂,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡知态,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年捷兰,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片负敏。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡贡茅,死狀恐怖,靈堂內的尸體忽然破棺而出其做,到底是詐尸還是另有隱情顶考,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布妖泄,位于F島的核電站驹沿,受9級特大地震影響,放射性物質發(fā)生泄漏蹈胡。R本人自食惡果不足惜渊季,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望罚渐。 院中可真熱鬧却汉,春花似錦、人聲如沸荷并。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽源织。三九已至翩伪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谈息,已是汗流浹背缘屹。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留黎茎,地道東北人囊颅。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像傅瞻,于是被迫代替她去往敵國和親踢代。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容