首頁  >  文章  >  運維  >  看看docker鏡像pull下來放在哪裡

看看docker鏡像pull下來放在哪裡

PHPz
PHPz原創
2023-05-13 18:41:375731瀏覽

Docker是一個開源的容器技術,可以用來建置、發布和運行應用程式。透過使用Docker映像,使用者可以簡單、快速地下載和安裝預先建置好的應用程式或容器環境。

Docker映像是由多個層(Layer)組成的,每一層都包含了一個檔案系統的快照。當使用者pull下Docker映像時,實際上就是從Docker Registry中取得映像的所有層,並將其組合起來建構成完整的Docker映像。

那麼,Docker映像在本機儲存的位置是什麼呢?本文將為您詳細介紹。

  1. 查看Docker映像清單

首先,我們需要查看目前本機的Docker映像清單。在終端機輸入下方指令:

docker images

執行後,將會列出本機上所有的Docker映像列表,包括映像ID、映像名稱、映像標籤、映像大小等資訊。如下圖所示:

Docker images

從上圖可以看出,每個鏡像都有一個唯一的ID、一個名稱和一些標籤(也稱為版本)。其中,REPOSITORY欄位表示鏡像的名稱,TAG欄位表示鏡像的標籤,IMAGE ID欄位則是該鏡像的唯一識別碼。

  1. 查看Docker映像儲存位置

在Docker中,每個映像都是由多個層(Layer)組成的。因此,當使用者下載或建立Docker映像時,實際上是將映像的所有層下載到本機儲存中。

而在Linux系統中,Docker映像其實是儲存在/var/lib/docker目錄下的。在終端機輸入下方指令:

sudo ls -l /var/lib/docker/

執行後,終端機將會顯示出/var/lib/docker/目錄下所有的檔案和資料夾清單。其中,/var/lib/docker/image資料夾是Docker儲存映像的主要位置。如下圖所示:

看看docker鏡像pull下來放在哪裡

/var/lib/docker/image/overlay2/imagedb/content/sha256目錄下,儲存了所有已下載的Docker映像(以映像ID命名),即所有層的儲存位置。在每個鏡像ID目錄下,都有一個名為「real」或「diff」文件,代表該層的儲存位置。

  1. 確認映像層儲存位置

對於Docker映像的每一層,其儲存位置可以透過執行下面的命令來確認:

docker history <image_name>:<tag>

例如,對於nginx映像,執行指令:

docker history nginx:latest

將會輸出下列結果:

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
84cf8d0a2e04        3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL SIGTERM           0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  EXPOSE 80                    0B
<missing>           3 weeks ago         /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B
<missing>           3 weeks ago         /bin/sh -c set -x  && apt-get update  && ap…   68.2MB
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NJS_VERSION=2.1.0.6      0B
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.16.1     0B
<missing>           4 weeks ago         /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B
<missing>           4 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B
<missing>           4 weeks ago         /bin/sh -c #(nop) ADD file:7fbfce9f6a99e63a5…   63.2MB

其中,每一層的SIZE欄位表示該層的實際佔用空間大小。這個指令輸出結果的第一列就是Docker鏡像每一層的ID,從上到下依序代表鏡像的各個層。

我們可以根據這個指令的輸出結果,確認每一層具體的儲存位置。例如,在上述命令的輸出結果中,最後一列是該層的描述訊息,其中包括了該層的原始命令和參數。

對於nginx鏡像的第一層(ID為“84cf8d0a2e04”),該層的CMD為“CMD ["nginx" "-g" "daemon…””,即啟動nginx服務;對於後面的各層,則是其它一些配置或命令。因此,我們可以大致猜測Docker映像每一層的儲存位置。

  1. 總結

透過上述指令,使用者可以在Linux系統下查看本機儲存的Docker映像。 Docker映像的層以映像ID為資料夾名稱存放在/var/lib/docker/image/overlay2/imagedb/content/sha256目錄中。每一層分別儲存在「real」或「diff」檔案中。

對於每一層映像的儲存位置,可以透過執行docker history指令查看,在輸出結果中尋找該層的描述訊息,從而大致猜測該層的儲存位置。

在使用Docker映像和容器時,了解Docker映像的儲存位置,可以更好地管理本機儲存空間,以及對Docker映像和容器進行備份和復原作業。

以上是看看docker鏡像pull下來放在哪裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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