目錄參考文獻
映象是什麼
unionfs
映象載入原理
為什麼採用分層映象
toc尚矽谷_docker核心技術(基礎篇)
形象說法:映象就像千層餅,一層套一層
官方:映象是一種輕量級、可執行的獨立軟體包,用來打包軟體執行環境和基於執行環境開發的軟體,它包含執行某個軟體所需的所有內容包括**、執行時、庫、環境變數和配置檔案。
docker的映象實際上由一層一層的檔案系統組成,這種層級的檔案系統unionfs。
定義:unionfs (聯合檔案系統) : union檔案系統(unionfs)是一種分層、 輕量級並且高效能的檔案系統,它支援對檔案系統的修改作為
一次提交來一層層的疊加,同時可以將不同目錄掛載到同乙個虛擬檔案系統下(unite several directories into a single virtual filesystem)。
union 檔案系統是docker映象的基礎。映象可以通過分層來進行繼承,基於基礎映象(沒有父映象的映象),可以製作各種具體的應用映象。
像個大花卷
特性:一次同時載入多個檔案系統,但從外面看起來,只能看到乙個檔案系統,聯合載入會把各層檔案系統疊加起來,這樣最終的檔案系統會包含所有底層的檔案和目錄
docker的映象實際上由一層一層的檔案系統組成,這種層級的檔案系統unionfs。
bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引導載入kernel, linux剛啟動時會載入bootfs檔案系統,在docker映象的最底層是bootfs。這一層與我們典型的linux/unix系統是一樣的,包含boot載入器和核心。當boot載入完成之後整個核心就都在記憶體中了,此時記憶體的使用權已由bootfs轉交給核心,此時系統也會解除安裝bootfs。
rootfs (root file system),在bootfs之 上。 包含的就是典型linux系統中的/dev, /proc, /bin, /etc等標準目錄和檔案。rootfs就是各種不
同的作業系統發行版,比如ubuntu,centos 等等。
平時我們安裝進虛擬機器的centos都是好幾個g,為什麼docker這裡才200m? ?
對於乙個精簡的os,rootfs可以很小,只需要包括最基本的命令、工具和程式庫就可以了,因為底層直接用host的kernel,自己只需要提供rootfs就行了。由此可見對於不同的linux發行版,bootfs基本是一致的, rootfs會有差別,因此不同的發行版可以公用bootfs。
為什麼tomcat要400m那麼大?
因為巢狀多層,tomcat映象是乙個精簡版基於linux的tomcat
最大的好處是-共性資源
多個映象由相同的base映象構建而來, 那宿主機只需要儲存乙份映象, 記憶體也只需要載入乙份映象, 就能為所有容器服務.
映象的每一層都可以共享
docker映象原理
映象就是基於執行環境的軟體包,不妨想象成乙個千層餅 映象底層就是unionfilesystem聯合檔案系統,簡稱union檔案,分為 bootfs 引導載入kernel,包含載入器和記憶體 rootfs 不一樣,諸如ubuntu 和centos的區別,但他們都共用bootfs載入的核心 顯然這種分層...
Docker系列 映象原理
映象是一種輕量級的可執行的軟體包,用來打包軟體執行的環境和基於執行環境開發的軟體,它包含軟體執行所需的所有內容,包括 依賴庫 環境變數 配置檔案。unionfs是一種分層 輕量級 高效能的檔案系統,它支援對檔案系統的修改作為一次提交來一層層疊加,同時可以將不同目錄掛載到統一虛擬檔案系統下。union...
docker映象分層原理
學習了linux的 namespace之後,知道了docker是如何將機器的資源進行隔離的,那麼docker中的映象分層技術的原理是什麼呢?答案是聯合檔案系統 先看看overlay的架構圖也許就明白了一半了 原理 overlayfs在linux主機上只有兩層,乙個目錄在下層,用來儲存映象 docke...