



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
overlay2驅(qū)動(dòng)工作機(jī)制OverlayFS在單個(gè)Linux主機(jī)上分為兩個(gè)代表不同層次的目錄,并且對(duì)外統(tǒng)一呈現(xiàn)為單個(gè)目錄。這兩個(gè)目錄通常被稱作層,用于統(tǒng)一呈現(xiàn)目錄的聯(lián)合進(jìn)程被稱為聯(lián)合掛載(UnionMount)。OverlayFS將低層目錄稱為lowerdir,高層目錄稱為upperdir,對(duì)外公開統(tǒng)一視圖的目錄被稱為merged。而overlay2驅(qū)動(dòng)本身最多支持128個(gè)OverlayFS層,這為與層相關(guān)的Docker命令(如dockerbuildand或dockercommit)提供更好的性能,并且在底層文件系統(tǒng)上占用更少的索引節(jié)點(diǎn)。圖1展示了Docker鏡像和Docker容器是如何分層的。鏡像層是lowerdir,容器層是upperdir。對(duì)外暴露的統(tǒng)一視圖就是容器掛載點(diǎn)。該圖還展示了Docker結(jié)構(gòu)是如何映射到OverlayFS結(jié)構(gòu)的。圖1OverlayFS的鏡像與容器分層當(dāng)鏡像層和容器層有相同的文件時(shí),則容器層(upperdir)優(yōu)先,容器層的文件會(huì)掩蓋鏡像層中相同的文件。容器合并(merged)顯示出統(tǒng)一的視圖。為創(chuàng)建一個(gè)容器,overlay2驅(qū)動(dòng)程序?qū)⒈硎剧R像的最頂層的目錄與容器的新目錄結(jié)合起來。鏡像的層是位于OverlayFS文件系統(tǒng)中的低層目錄lowerdir,并且是只讀的。容器的新目錄是高層目錄upperdir,并且是可寫的。接下來驗(yàn)證分析overlay2存儲(chǔ)驅(qū)動(dòng)所實(shí)現(xiàn)的鏡像層和容器層。Docker中的/var/lib/docker/overlay2目錄是用于存儲(chǔ)Docker容器的數(shù)據(jù)層和鏡像層的。每個(gè)鏡像層在/var/lib/docker/overlay2目錄中都有自己的目錄用于包含其內(nèi)容,但是鏡像層ID與目錄ID并不對(duì)應(yīng)。容器也存在于/var/lib/docker/overlay2目錄中。(1)在/var/lib/docker/overlay2目錄中會(huì)發(fā)現(xiàn)多個(gè)目錄。注意不要直接操作/var/lib/docker目錄中的任何文件和目錄,因?yàn)檫@些文件和目錄是由Docker管理的。使用tree命令該目錄層次結(jié)構(gòu)(為簡單起見,使用選項(xiàng)-L2僅顯示兩層目錄)。這里從中挑出同一個(gè)容器的兩個(gè)目錄。├──f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9│
├──diff│
├──link│
├──lower│
├──merged│
└──work├──f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9-init│
├──committed│
├──diff│
├──link│
├──lower│
└──work其中diff、merged和work是目錄,其他是文件。只有運(yùn)行中的容器才存在merged目錄。(2)每一層中的diff目錄包含該層的實(shí)際內(nèi)容。[root@host1~]#ls-l/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/diff總用量0drwxr-xr-x3rootroot1711月122021var(3)每一層中都有一個(gè)link文件,內(nèi)容為l(小寫的L)目錄中的鏈接,該鏈接實(shí)際指向當(dāng)前層目錄中的diff目錄。例如:[root@host1~]#cat/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/linkBWSDOT2NTUWAXJYWESKLAHDUE2l(小寫的L)目錄包含的是符號(hào)鏈接。這些軟連接都是短格式的層標(biāo)識(shí)符,指向每一層中的diff目錄,這樣做的目的是避免執(zhí)行mount操作時(shí)超出頁大小限制。[root@host1~]#ls-l/var/lib/docker/overlay2/l/BWSDOT2NTUWAXJYWESKLAHDUE2lrwxrwxrwx1rootroot721月1517:47/var/lib/docker/overlay2/l/BWSDOT2NTUWAXJYWESKLAHDUE2->../f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/diff(4)除底層外,其余每一層的目錄中包含一個(gè)lower文件,用于表示其父層。該文件包含了該層的所有更低層的名稱和順序(用軟連接表示),可以根據(jù)該文件得出整個(gè)鏡像的層次結(jié)構(gòu)。[root@host1~]#cat/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/lowerl/HAKT3ASPFK5CBM4L6K4A425VHR:l/OANY2V3HOUMS4XLAWZ23Y4HTBL:l/RJPQZOEQBUQBL3I44S7BT53GYI:l/I35GBRKS4OJGLSYNI6RUETU5BR:l/IC6IGNFNW3OPWXMBT7RZCKHGDW:l/YRCQ2UOSSRP56ZKP6DIHFE2WAP本例中該層下面包括6個(gè)低層。繼續(xù)追蹤下一層進(jìn)行驗(yàn)證。[root@host1~]#ls-l/var/lib/docker/overlay2/l/HAKT3ASPFK5CBM4L6K4A425VHRlrwxrwxrwx1rootroot771月1517:47/var/lib/docker/overlay2/l/HAKT3ASPFK5CBM4L6K4A425VHR->../f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9-init/diff查看該層的實(shí)際內(nèi)容。[root@host1~]#ls-l/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9-init/diff總用量0drwxr-xr-x4rootroot431月1517:47devdrwxr-xr-x2rootroot661月1517:47etc查看該層lower文件的內(nèi)容。[root@host1~]#cat/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9-init/lowerl/OANY2V3HOUMS4XLAWZ23Y4HTBL:l/RJPQZOEQBUQBL3I44S7BT53GYI:l/I35GBRKS4OJGLSYNI6RUETU5BR:l/IC6IGNFNW3OPWXMBT7RZCKHGDW:l/YRCQ2UOSSRP56ZKP6DIHFE2WAP繼續(xù)追蹤最低層。[root@host1~]#ls-l/var/lib/docker/overlay2/l/YRCQ2UOSSRP56ZKP6DIHFE2WAPlrwxrwxrwx1rootroot721月1517:47/var/lib/docker/overlay2/l/YRCQ2UOSSRP56ZKP6DIHFE2WAP->../f796eb6054f40344cf72dca3b593bf7026c9114364108e130739489546566903/diff[root@host1~]#ls-l/var/lib/docker/overlay2/f796eb6054f40344cf72dca3b593bf7026c9114364108e130739489546566903總用量8-rw-------1rootroot01月1517:47committeddrwxr-xr-x19rootroot40961月1517:47diff-rw-r--r--1rootroot261月1517:47link可以發(fā)現(xiàn),最低層也就是底層,沒有l(wèi)ower文件,因此例中f796eb6054f40344cf72dca3b593bf7026c9114364108e130739489546566903為鏡像的底層。這一層的實(shí)際內(nèi)容如下。[root@host1~]#ls-l/var/lib/docker/overlay2/f796eb6054f40344cf72dca3b593bf7026c9114364108e130739489546566903/diff總用量12drwxr-xr-x2rootroot409611月122021bindrwxr-xr-x2rootroot611月122021devdrwxr-xr-x15rootroot409611月122021etcdrwxr-xr-x2rootroot611月122021homedrwxr-xr-x5rootroot18511月122021libdrwxr-xr-x5rootroot4411月122021mediadrwxr-xr-x2rootroot611月122021mntdrwxr-xr-x2rootroot611月122021optdr-xr-xr-x2rootroot611月122021procdrwx------2rootroot611月122021rootdrwxr-xr-x2rootroot611月122021rundrwxr-xr-x2rootroot409611月122021sbindrwxr-xr-x2rootroot611月122021srvdrwxr-xr-x2rootroot611月122021sysdrwxrwxrwt2rootroot611月122021tmpdrwxr-xr-x7rootroot6611月122021usrdrwxr-xr-x12rootroot13711月122021var(5)除底層外,其余每一層的目錄中還包含一個(gè)merged目錄(其中包含其父層和自身的合成內(nèi)容)和一個(gè)由OverlayFS內(nèi)部使用的work目錄(容器工作目錄)。[root@host1~]#ls-l/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/merged總用量8drwxr-xr-x1rootroot2211月132021bindrwxr-xr-x1rootroot431月1517:47dev-rwxrwxr-x1rootroot15511月132021entrypoint.shdrwxr-xr-x1rootroot661月1517:47etcdrwxr-xr-x2rootroot611月122021homedrwxr-xr-x1rootroot1711月122021libdrwxr-xr-x5rootroot4411月122021mediadrwxr-xr-x2rootroot611月122021mntdrwxr-xr-x2rootroot611月122021optdr-xr-xr-x2rootroot611月122021procdrwx------2rootroot611月122021rootdrwxr-xr-x2rootroot611月122021rundrwxr-xr-x2rootroot409611月122021sbindrwxr-xr-x2rootroot611月122021srvdrwxr-xr-x2rootroot611月122021sysdrwxrwxrwt2rootroot611月122021tmpdrwxr-xr-x1rootroot5511月122021usrdrwxr-xr-x1rootroot1711月122021var[root@host1~]#ls-l/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/work總用量0d---------2rootroot61月2216:59workmerged目錄中內(nèi)容最多,它是overlay2的直接掛載點(diǎn),對(duì)容器的任何修改會(huì)反應(yīng)到該目錄中。(6)執(zhí)行以下命令查看使用Docker的overlay2存儲(chǔ)驅(qū)動(dòng)時(shí)存在的掛載(此時(shí)容器正在運(yùn)行)。為了可讀性,下面的輸出被調(diào)整。[root@host1~]#mount|grepoverlayoverlayon/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年建筑工程考生復(fù)習(xí)分享試題及答案
- 建筑工程考試的答題時(shí)間管理技巧試題及答案
- 行政管理??茝?fù)習(xí)經(jīng)驗(yàn)分享與探討試題及答案
- 鄉(xiāng)村道路承包維修合同范例
- 冰淇淋進(jìn)貨合同標(biāo)準(zhǔn)文本
- 農(nóng)村建筑用工合同范例
- 2025年市政學(xué)重要知識(shí)試題及答案
- 理論與公眾需求結(jié)合的公文處理試題及答案
- 一線工人勞務(wù)派遣合同范例
- 建筑工程中的多元化管理試題及答案
- 統(tǒng)計(jì)學(xué)-形考任務(wù)3-國開-參考資料
- 人要有自信+課件-+2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- (二模)新疆維吾爾自治區(qū)2025年普通高考第二次適應(yīng)性檢測(cè) 英語試卷(含答案詳解)
- 100以內(nèi)乘法除法口算練習(xí)題本1000道可打印
- 承包沙場(chǎng)生產(chǎn)線合同范本
- 2025年全球及中國金剛石銅和金剛石鋁行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- DB11-T 583-2022 扣件式和碗扣式鋼管腳手架安全選用技術(shù)規(guī)程
- 安徽省合肥市肥西縣2024-2025學(xué)年高一上學(xué)期1月期末英語試題(含答案無聽力音頻無聽力原文)
- 歌劇排練與觀摩知到智慧樹章節(jié)測(cè)試課后答案2024年秋四川音樂學(xué)院
- 海底撈崗位晉升流程
- 2024年08月中國國新基金管理有限公司招考筆試歷年參考題庫附帶答案詳解
評(píng)論
0/150
提交評(píng)論