Docker映象詳解
1. UnionFS(聯合檔案系統)
-
聯合檔案系統(UnionFS)是一種分層、輕量級並且高效能的檔案系統,它支援對檔案系統的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同一個虛擬檔案系統下。聯合檔案系統是 Docker 映象的基礎。映象可以通過分層來進行繼承,基於基礎映象(沒有父映象),可以製作各種具體的應用映象。
-
特性:一次同時載入多個檔案系統,但從外面看起來只能看到一個檔案系統。聯合載入會把各層檔案系統疊加起來,這樣最終的檔案系統會包含所有底層的檔案和目錄。
2. 映象載入原理
1、Docker的映象實際由一層一層的檔案系統組成:
-
bootfs(boot file system)主要包含bootloader和kernel。bootloader主要是引導載入kernel,完成後整個核心就都在記憶體中了。此時記憶體的使用權已由bootfs轉交給核心,系統解除安裝bootfs。可以被不同的Linux發行版公用。
-
rootfs(root file system),包含典型Linux系統中的/dev,/proc,/bin,/etc等標準目錄和檔案。rootfs就是各種不同作業系統發行版(Ubuntu,Centos等)。因為底層直接用Host的kernel,rootfs只包含最基本的命令,工具和程式就可以了。
2、分層理解
-
所有的Docker映象都起始於一個基礎映象層,當進行修改或增加新的內容時,就會在當前映象層之上,建立新的容器層。
-
容器在啟動時會在映象最外層上建立一層可讀寫的容器層(R/W),而映象層是隻讀的(R/O)。
3. commit 映象
編輯容器後提交容器成為一個新映象
docker commit -m="描述資訊" -a="作者" 容器id 目標映象名:[tag]
【實戰測試,提交新的tomcat】
1、啟動一個預設的tomcat,官方的映象預設 webapps 下面是沒有檔案的!
2、拷貝相應的基本檔案
3、提交
4、成功訪問到tomcat首頁