查看docker镜像pull下来放在哪里

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存储位置

/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下来放在哪里的详细内容,更多请关注其它相关文章!