1. 程式人生 > 其它 >Docker映象詳解

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首頁