查看docker鏡像pull下來放在哪里

docker是一個開源的容器技術,可以用來構建、發(fā)布和運行應用程序。通過使用docker鏡像,用戶可以簡單、快捷地下載和安裝預先構建好的應用程序或者容器環(huán)境。

Docker鏡像是由多個層(Layer)組成的,每一層都包含了一個文件系統(tǒng)的快照。當用戶pull下Docker鏡像時,實際上就是從Docker Registry中獲取鏡像的所有層,并將其組合起來構建成完整的Docker鏡像。

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

  1. 查看Docker鏡像列表

首先,我們需要查看當前本地的Docker鏡像列表。在終端輸入下面命令:

docker images

執(zhí)行后,將會列出本機上所有的Docker鏡像列表,包括鏡像ID、鏡像名稱、鏡像標簽、鏡像大小等信息。如下圖所示:

查看docker鏡像pull下來放在哪里

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

  1. 查看Docker鏡像存儲位置

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

而在Linux系統(tǒng)中,Docker鏡像實際上是存儲在/var/lib/docker目錄下的。在終端輸入下面命令:

sudo ls -l /var/lib/docker/

執(zhí)行后,終端將會顯示出/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鏡像的每一層,其存儲位置可以通過執(zhí)行下面的命令來確認:

docker history <image_name>:<tag></tag></image_name>

例如,對于nginx鏡像,執(zhí)行命令:

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  &amp;&amp; apt-get update  &amp;&amp; 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</missing></missing></missing></missing></missing></missing></missing></missing></missing>

其中,每一層的SIZE字段表示該層的實際占用空間大小。該命令輸出結果的第一列就是Docker鏡像每一層的ID,從上到下依次代表鏡像的各個層。

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

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

  1. 總結

通過上述命令,用戶可以在Linux系統(tǒng)下查看本地存儲的Docker鏡像。Docker鏡像的層以鏡像ID為文件夾名存放在/var/lib/docker/image/overlay2/imagedb/content/sha256目錄中。每一層分別存儲在“real”或者“diff”文件中。

對于每一層鏡像的存儲位置,可以通過執(zhí)行docker history命令查看,在輸出結果中尋找該層的描述信息,從而大致猜測該層的存儲位置。

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

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享