首頁  >  文章  >  運維  >  docker映像中包含什麼

docker映像中包含什麼

WBOY
WBOY原創
2022-06-27 11:23:036007瀏覽

docker映像中包含了提供容器運行時所需的程式、庫、資源、配置等文件,以及為運行時準備的一些配置參數;鏡像是一個特殊的文件系統,不包含任何動態數據,其中的內容在建置之後也不會被改變。

docker映像中包含什麼

本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。

docker映像包含什麼

先了解下什麼是映像:

我們都知道,作業系統分為 核心 和 使用者空間。對於 Linux 而言,核心啟動後,會掛載 root 檔案系統為其提供使用者空間支援。而 Docker 映像(Image),就等於是一個 root 檔案系統。例如官方鏡像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系統的 root 檔案系統。

Docker 映像 是一個特殊的檔案系統,除了提供容器運行時所需的程式、庫、資源、配置等檔案外,還包含了一些為運行時準備的一些設定參數(如匿名卷、環境變數、使用者等)。鏡像 不包含 任何動態數據,其內容在建置之後也不會被改變。

分層儲存

因為映像包含作業系統完整的root 檔案系統,其體積往往是龐大的,因此在Docker 設計時,就充分利用的技術,將其設計為分層儲存的架構。所以嚴格來說,鏡像並非是像一個ISO 那樣的打包文件,鏡像只是一個虛擬的概念,其實際體現並非由一個文件組成,而是由一組文件系統組成,或者說,由多層文件系統聯合組成。

鏡像建構時,會一層層構建,前一層是後一層的基礎。每一層建置完就不會再改變,後一層上的任何改變只會發生在自己這一層。例如,刪除前一層文件的操作,實際上不是真的刪除前一層的文件,而是僅在當前層標記為該文件已刪除。在最終容器運行的時候,雖然不會看到這個文件,但是實際上該文件會一直跟隨鏡像。因此,在建造鏡像的時候,需要額外小心,每一層盡量只包含該層需要添加的東西,任何額外的東西應該​​在該層構建結束前清理掉。

分層儲存的特徵也使得鏡像的重複使用、自訂變更的更為容易。甚至可以用之前建造好的鏡像作為基礎層,然後進一步添加新的層,以自訂自己所需的內容,建立新的鏡像。

擴展知識:

可以將映像理解為類別(Class)。

首先需要先從鏡像倉庫服務中拉取鏡像。常見的映像倉庫服務是 Docker Hub,但也存在其他映像倉庫服務。

拉取作業會將映像下載到本機 Docker 主機,可以使用該映像啟動一個或多個容器。

鏡像由多個層組成,每層疊加之後,從外部看來就如一個獨立的物件。鏡像內部是一個精簡的作業系統(OS),同時也包含應用程式運作所必須的檔案和依賴套件。

因為容器的設計初衷就是快速和小巧,所以鏡像通常都比較小。

前面多次提到鏡像就像停止運作的容器(類別)。實際上,可以停止某個容器的運行,並從中建立新的鏡像。

在該前提下,鏡像可以理解為一種建構時(build-time)結構,而容器可以理解為一種運行時(run-time)結構,如下圖所示。

docker映像中包含什麼

推薦學習:《docker影片教學

以上是docker映像中包含什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn