Docker 入門系列四:Dockerfile-映象原理

lemon2018發表於2020-04-06

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 入門系列四:Dockerfile

附靈魂三問答案:

  1. Docker的本質是一個檔案系統
  2. Centos的iso映象檔案包含bootfs和rootfs,而docker的centos映象服用作業系統的bootfs,只有rootfs和其他映象層
  3. 由於docker中映象是分層的,tomcat雖然只有70多MB,但他需要依賴與父映象和基礎映象,所有整個對外暴露的tomcat映象大小500多MB。
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章