Docker中的分層結(jié)構(gòu)詳解
Docker的分層結(jié)構(gòu)
UnionFS(聯(lián)合文件系統(tǒng))
Union文件系統(tǒng)(UnionFS)是一種分層、輕量級并且高性能的文件系統(tǒng),它支持對文件系統(tǒng)的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統(tǒng)下(unite several directories into a single virtual filesystem)。Union文件系統(tǒng)是Docker鏡像的基礎(chǔ)。鏡像可以通過分層來進(jìn)行繼承,基于基礎(chǔ)鏡像(沒有父鏡像),可以制作各種具體的應(yīng)用鏡像。
特性: 一次同時加載多個文件系統(tǒng),但從外面看起來,只能看到一個文件系統(tǒng),聯(lián)合加載會把各層文件系統(tǒng)疊加起來,這樣最終的文件系統(tǒng)會包含所有底層的文件和目錄。
Docker鏡像的加載原理
docker鏡像實(shí)際上由一層層的文件系統(tǒng)組成,這種層級的文件系統(tǒng)UnionFS。
bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引導(dǎo)加載kernel,Linux剛啟動時會加載bootfs文件系統(tǒng),在Docker鏡像的最底層是引導(dǎo)文件系統(tǒng)bootfs。
這一層與我們典型的Linux/Unix系統(tǒng)是一樣的,包含boot加載器和內(nèi)核。
當(dāng)boot加載完成之后整個內(nèi)核就都在內(nèi)存中了,此時內(nèi)存的使用權(quán)已由bootfs轉(zhuǎn)交給內(nèi)核,此時系統(tǒng)也會卸載bootfs。
rootfs(root file system),在bootfs之上。
包含的就是典型Linux系統(tǒng)中的/dev,/proc,/bin,/etc等標(biāo)準(zhǔn)目錄和文件。
rootfs就是各種不同的操作系統(tǒng)發(fā)行版,比如Ubuntu,Centos等等。

鏡像分層的一個最大的好處就在于:資源共享,方便復(fù)制遷移(為了復(fù)用)
比如說有多個鏡像都從相同的base鏡像構(gòu)建而來,那么Docker Host只需要在磁盤上保存一份base鏡像,同時內(nèi)存中也只需要加載一份base鏡像,就可以為所有的容器服務(wù)了。而且鏡像的每一層都可以被共享。
Docker鏡像層都是只讀的,容器層是可寫的當(dāng)容器啟動時,一個新的可寫層被加載到鏡像的頂部。這一層通常被稱作“容器層”,“容器層”之下的都叫“鏡像層”。

總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Docker部署Spring Boot的應(yīng)用示例
這篇文章主要介紹了使用Docker部署Spring Boot的應(yīng)用示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
煮餃子論云原生docker與kubernetes之間的關(guān)系
這篇文章主要為大家用煮餃子論的道理來為大家講解一下云原生docker與kubernetes之間的關(guān)系,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
基于?Docker?和?Flask?構(gòu)建高并發(fā)微服務(wù)架構(gòu)的實(shí)現(xiàn)
本文主要介紹了基于?Docker?和?Flask?構(gòu)建高并發(fā)微服務(wù)架構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Docker 容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址
這篇文章主要介紹了Docker 容器指定自定義網(wǎng)段的固定IP/靜態(tài)IP地址的相關(guān)資料,需要的朋友可以參考下2016-12-12
docker?build?-t?和?docker?build?-f?區(qū)別解析
docker build 是用于構(gòu)建Docker鏡像的命令,它允許你基于一個Dockerfile來創(chuàng)建一個鏡像,在 docker build 命令中,有兩個常用的選項(xiàng) -t 和 -f,它們有不同的作用,這篇文章主要介紹了docker?build?-t?和?docker?build?-f?區(qū)別,需要的朋友可以參考下2023-08-08
Docker端口映射實(shí)現(xiàn)網(wǎng)絡(luò)訪問的方法
本篇文章主要介紹了Docker端口映射實(shí)現(xiàn)網(wǎng)絡(luò)訪問的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
docker容器查看所有沒使用的鏡像并刪除的實(shí)現(xiàn)
本文主要介紹了docker容器查看所有沒使用的鏡像并刪除的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Docker實(shí)現(xiàn)從零開始搭建SOLO個人博客的方法步驟
本文主要介紹了Docker實(shí)現(xiàn)從零開始搭建SOLO個人博客,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Docker容器訪問宿主機(jī)Ollama服務(wù)配置詳細(xì)操作步驟
Ollama現(xiàn)在已經(jīng)支持Docker安裝,極大的簡化了服務(wù)器用戶部署難度,這篇文章主要介紹了Docker容器訪問宿主機(jī)Ollama服務(wù)配置詳細(xì)操作步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-12-12

