Docker 映象原理
思考(靈魂三問):
- Docker映象本質是什麼?
- Docker中一個centos映象為什麼只有200MB,而一個centos作業系統的iso檔案要幾個G?
- Docker中一個tomcat映象為什麼有500MB,而一個tomcat安裝包只有70多MB?
作業系統組成部分:
- 程式排程子系統
- 程式通訊子系統
- 記憶體管理子系統
- 裝置管理子系統
- 檔案管理子系統
- 網路通訊子系統
- 作業控制子系統
Linux檔案系統由bootfs和rootfs兩部分組成
- bootfs:包含bootloader(引導載入程式)和kernel(核心)
- rootfs:root檔案系統,包含的就是典型Linux系統中國呢的/dev,/proc,/bin,/etc等標準目錄和檔案
- 不同的linux發行版,bootfs基本一樣,而rootfs不同,如ubuntu,centos等
- Docker映象是有特殊的檔案系統疊加而成
- 最底端是bootfs,並使用宿主機的bootfs
- 第二層是root檔案系統rootfs,稱為base image
- 然後在往上可以疊加其他的映象檔案
- 統一檔案系統(Union File System)技術能夠將不同的層整合成一個檔案系統,為這些層提供了一個統一的視角,這樣就隱藏了多層的存在,在使用者的角度看,只存在一個檔案系統。
- 一個映象可以放在另一個映象的上面。位於下面的映象稱為父映象,最底部的映象成為基礎映象。
- 當從一個映象啟動容器是,Docker會在最頂層載入一個讀寫檔案系統作為部署
實現複用
附靈魂三問答案:
- Docker的本質是一個檔案系統
- Centos的iso映象檔案包含bootfs和rootfs,而docker的centos映象服用作業系統的bootfs,只有rootfs和其他映象層
- 由於docker中映象是分層的,tomcat雖然只有70多MB,但他需要依賴與父映象和基礎映象,所有整個對外暴露的tomcat映象大小500多MB。
本作品採用《CC 協議》,轉載必須註明作者和本文連結