電子活頁-03.05.overlay2驅(qū)動工作機制_第1頁
電子活頁-03.05.overlay2驅(qū)動工作機制_第2頁
電子活頁-03.05.overlay2驅(qū)動工作機制_第3頁
電子活頁-03.05.overlay2驅(qū)動工作機制_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

overlay2驅(qū)動工作機制OverlayFS在單個Linux主機上分為兩個代表不同層次的目錄,并且對外統(tǒng)一呈現(xiàn)為單個目錄。這兩個目錄通常被稱作層,用于統(tǒng)一呈現(xiàn)目錄的聯(lián)合進(jìn)程被稱為聯(lián)合掛載(UnionMount)。OverlayFS將低層目錄稱為lowerdir,高層目錄稱為upperdir,對外公開統(tǒng)一視圖的目錄被稱為merged。而overlay2驅(qū)動本身最多支持128個OverlayFS層,這為與層相關(guān)的Docker命令(如dockerbuildand或dockercommit)提供更好的性能,并且在底層文件系統(tǒng)上占用更少的索引節(jié)點。圖1展示了Docker鏡像和Docker容器是如何分層的。鏡像層是lowerdir,容器層是upperdir。對外暴露的統(tǒng)一視圖就是容器掛載點。該圖還展示了Docker結(jié)構(gòu)是如何映射到OverlayFS結(jié)構(gòu)的。圖1OverlayFS的鏡像與容器分層當(dāng)鏡像層和容器層有相同的文件時,則容器層(upperdir)優(yōu)先,容器層的文件會掩蓋鏡像層中相同的文件。容器合并(merged)顯示出統(tǒng)一的視圖。為創(chuàng)建一個容器,overlay2驅(qū)動程序?qū)⒈硎剧R像的最頂層的目錄與容器的新目錄結(jié)合起來。鏡像的層是位于OverlayFS文件系統(tǒng)中的低層目錄lowerdir,并且是只讀的。容器的新目錄是高層目錄upperdir,并且是可寫的。接下來驗證分析overlay2存儲驅(qū)動所實現(xiàn)的鏡像層和容器層。Docker中的/var/lib/docker/overlay2目錄是用于存儲Docker容器的數(shù)據(jù)層和鏡像層的。每個鏡像層在/var/lib/docker/overlay2目錄中都有自己的目錄用于包含其內(nèi)容,但是鏡像層ID與目錄ID并不對應(yīng)。容器也存在于/var/lib/docker/overlay2目錄中。(1)在/var/lib/docker/overlay2目錄中會發(fā)現(xiàn)多個目錄。注意不要直接操作/var/lib/docker目錄中的任何文件和目錄,因為這些文件和目錄是由Docker管理的。使用tree命令該目錄層次結(jié)構(gòu)(為簡單起見,使用選項-L2僅顯示兩層目錄)。這里從中挑出同一個容器的兩個目錄。├──f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9│

├──diff│

├──link│

├──lower│

├──merged│

└──work├──f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9-init│

├──committed│

├──diff│

├──link│

├──lower│

└──work其中diff、merged和work是目錄,其他是文件。只有運行中的容器才存在merged目錄。(2)每一層中的diff目錄包含該層的實際內(nèi)容。[root@host1~]#ls-l/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/diff總用量0drwxr-xr-x3rootroot1711月122021var(3)每一層中都有一個link文件,內(nèi)容為l(小寫的L)目錄中的鏈接,該鏈接實際指向當(dāng)前層目錄中的diff目錄。例如:[root@host1~]#cat/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/linkBWSDOT2NTUWAXJYWESKLAHDUE2l(小寫的L)目錄包含的是符號鏈接。這些軟連接都是短格式的層標(biāo)識符,指向每一層中的diff目錄,這樣做的目的是避免執(zhí)行mount操作時超出頁大小限制。[root@host1~]#ls-l/var/lib/docker/overlay2/l/BWSDOT2NTUWAXJYWESKLAHDUE2lrwxrwxrwx1rootroot721月1517:47/var/lib/docker/overlay2/l/BWSDOT2NTUWAXJYWESKLAHDUE2->../f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/diff(4)除底層外,其余每一層的目錄中包含一個lower文件,用于表示其父層。該文件包含了該層的所有更低層的名稱和順序(用軟連接表示),可以根據(jù)該文件得出整個鏡像的層次結(jié)構(gòu)。[root@host1~]#cat/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/lowerl/HAKT3ASPFK5CBM4L6K4A425VHR:l/OANY2V3HOUMS4XLAWZ23Y4HTBL:l/RJPQZOEQBUQBL3I44S7BT53GYI:l/I35GBRKS4OJGLSYNI6RUETU5BR:l/IC6IGNFNW3OPWXMBT7RZCKHGDW:l/YRCQ2UOSSRP56ZKP6DIHFE2WAP本例中該層下面包括6個低層。繼續(xù)追蹤下一層進(jìn)行驗證。[root@host1~]#ls-l/var/lib/docker/overlay2/l/HAKT3ASPFK5CBM4L6K4A425VHRlrwxrwxrwx1rootroot771月1517:47/var/lib/docker/overlay2/l/HAKT3ASPFK5CBM4L6K4A425VHR->../f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9-init/diff查看該層的實際內(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為鏡像的底層。這一層的實際內(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)除底層外,其余每一層的目錄中還包含一個merged目錄(其中包含其父層和自身的合成內(nèi)容)和一個由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的直接掛載點,對容器的任何修改會反應(yīng)到該目錄中。(6)執(zhí)行以下命令查看使用Docker的overlay2存儲驅(qū)動時存在的掛載(此時容器正在運行)。為了可讀性,下面的輸出被調(diào)整。[root@host1~]#mount|grepoverlayoverlayon/var/lib/docker/overlay2/f332bbba101bfc02ecfd92eb71f0677d26d314220d2337eacb534efd711cc7f9/m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論