一、概述
創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),買友情鏈接,廣告投放為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。 Docker中的鏡像采用分層構(gòu)建設(shè)計(jì),每個(gè)層可以稱之為“l(fā)ayer”,這些layer被存放在了/var/lib/docker/
通常ubuntu類的系統(tǒng)默認(rèn)采用的是AUFS,centos7.1+系列采用的是OverlayFS。而本文將介紹以O(shè)verlayFS作為存儲(chǔ)驅(qū)動(dòng)的鏡像存儲(chǔ)原理以及存儲(chǔ)結(jié)構(gòu)。
二、OverlayFS 介紹
OverlayFS是一種堆疊文件系統(tǒng),它依賴并建立在其它的文件系統(tǒng)之上(例如ext4fs和xfs等等),并不直接參與磁盤空間結(jié)構(gòu)的劃分,僅僅將原來底層文件系統(tǒng)中不同的目錄進(jìn)行“合并”,然后向用戶呈現(xiàn),這也就是聯(lián)合掛載技術(shù),對(duì)比于AUFS,OverlayFS速度更快,實(shí)現(xiàn)更簡單。 而Linux 內(nèi)核為Docker提供的OverlayFS驅(qū)動(dòng)有兩種:overlay和overlay2。而overlay2是相對(duì)于overlay的一種改進(jìn),在inode利用率方面比overlay更有效。但是overlay有環(huán)境需求:docker版本17.06.02+,宿主機(jī)文件系統(tǒng)需要是ext4或xfs格式。
聯(lián)合掛載
overlayfs通過三個(gè)目錄:lower目錄、upper目錄、以及work目錄實(shí)現(xiàn),其中l(wèi)ower目錄可以是多個(gè),work目錄為工作基礎(chǔ)目錄,掛載后內(nèi)容會(huì)被清空,且在使用過程中其內(nèi)容用戶不可見,最后聯(lián)合掛載完成給用戶呈現(xiàn)的統(tǒng)一視圖稱為為merged目錄。以下使用mount將演示其如何工作的。
使用mount命令掛載overlayfs語法如下:
mount -t overlay overlay -o lowerdir=lower1:lower2:lower3,upperdir=upper,workdir=work merged_dir