docker映象分層原理

2022-02-23 21:15:12 字數 1250 閱讀 8589

學習了linux的 namespace之後,知道了docker是如何將機器的資源進行隔離的,那麼docker中的映象分層技術的原理是什麼呢?

答案是聯合檔案系統

先看看overlay的架構圖也許就明白了一半了

原理:overlayfs在linux主機上只有兩層,乙個目錄在下層,用來儲存映象(docker),另外乙個目錄在上層,用來儲存容器資訊。

在overlayfs中,底層的目錄叫做lowerdir,頂層的目錄稱之為upperdir,對外提供統一的檔案系統為merged。當需要修改乙個檔案時,

使用cow將檔案從唯讀的lower複製到可寫的upper進行修改,結果也儲存在upper層。在docker中,底下的唯讀層就是image,可寫層就是container

那是怎麼實現映象分層的呢,overlayfs儲存的每個映象都儲存在/var/lib/docker/overlay,並且有對應的目錄,使用硬鏈結與底層資料進行關聯,他是通過硬鏈結與底層儲存建立連線的。

特性:基於上面這種原理,overlay就可以聯合很多不同的底層儲存,然後通過統一的檢視來面向docker容器。

那下面我們做乙個測試。

#建立相應的目錄

mkdir lowerdir &&mkdir -p upperdir/upper &&mkdir -p upperdir/work &&mkdir merged

#建立一些表示檔案

cd lowerdir && echo "

mirror_file_1

" > ./mirror_file_1 && echo "

mirror_file_2

" > ./mirror_file_2

cd upperdir/upper && echo "

upper_file_1

" > ./upper_file_1 && echo "

upper_file_2

" > ./upper_file_2

#掛載下

Docker映象分層的原理詳解

base映象 base映象有兩層含義 所以,base映象一般都是各種linux發行版本的docker映象,比如 ubuntu,debian或者centos等。base映象提供的都是最小安裝的linux發行版本。我們大部分映象都將是基於base映象構建的。所以,通常使用的是官方發布的base映象。可以...

docker映象原理

映象就是基於執行環境的軟體包,不妨想象成乙個千層餅 映象底層就是unionfilesystem聯合檔案系統,簡稱union檔案,分為 bootfs 引導載入kernel,包含載入器和記憶體 rootfs 不一樣,諸如ubuntu 和centos的區別,但他們都共用bootfs載入的核心 顯然這種分層...

Docker 映象原理

目錄參考文獻 映象是什麼 unionfs 映象載入原理 為什麼採用分層映象 toc尚矽谷 docker核心技術 基礎篇 形象說法 映象就像千層餅,一層套一層 官方 映象是一種輕量級 可執行的獨立軟體包,用來打包軟體執行環境和基於執行環境開發的軟體,它包含執行某個軟體所需的所有內容包括 執行時 庫 環...