Docker 查看 Image 占用空间

在使用 Docker 进行容器化部署的过程中,我们经常需要查看和管理 Docker 镜像的占用空间,以便及时清理无用的镜像,释放磁盘空间。本文将介绍如何使用 Docker 命令行工具来查看镜像占用的空间,并给出相应的代码示例。

Docker 镜像占用空间的概念

Docker 镜像是容器的基础,它包含了一切容器运行所需的文件系统、库文件和运行环境等。当我们构建一个 Docker 镜像时,实际上是在基础镜像的基础上添加了一些额外的文件和配置。因此,每个镜像的大小都是不同的。

在 Docker 中,镜像的占用空间主要包括两部分:

  1. 镜像文件系统层:Docker 镜像采用了分层文件系统的设计,每一层都是只读的,并且可以被共享和复用。这些文件系统层以只读的方式叠加在一起,形成了一个完整的镜像。一般来说,镜像的每一层都是一个文件夹,其中包含了该层的文件和目录。
  2. 镜像元数据:镜像元数据包括镜像的名称、标签、大小等信息。这些元数据存储在 Docker 守护进程的数据库中,用于管理和查找镜像。

使用 Docker 命令查看镜像占用空间

Docker 提供了一系列命令来管理和操作镜像,其中包括查看镜像占用空间的命令。下面我们将介绍几个常用的命令。

docker images

docker images 命令可以列出当前系统中所有的镜像,并显示它们的大小信息。该命令的输出包含了镜像的仓库名、标签、镜像 ID、创建时间和占用空间等信息。

$ docker images
REPOSITORY        TAG       IMAGE ID       CREATED          SIZE
ubuntu            latest    0d9c737e2bea   4 weeks ago      64.2MB
alpine            latest    e7d92cdc71fe   5 weeks ago      5.57MB

在上面的示例中,我们可以看到 ubuntu 镜像的占用空间为 64.2MB,alpine 镜像的占用空间为 5.57MB。

docker inspect

docker inspect 命令可以获取指定镜像的详细信息,包括其占用空间。该命令的输出是一个 JSON 格式的字符串,其中包含了镜像的各种属性。

$ docker inspect ubuntu --format='{{.Size}}'
64245232

上面的示例中,我们使用 docker inspect 命令获取了 ubuntu 镜像的大小,并输出为字节数。可以看到 ubuntu 镜像的占用空间为 64245232 字节。

docker system df

docker system df 命令可以查看 Docker 系统的磁盘使用情况,包括镜像、容器、卷和网络等资源的占用空间。该命令的输出包含了各项资源的数量和占用空间。

$ docker system df
TYPE                TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images              2         1         69.14MB   69.14MB (100%)
Containers          1         0         0B        0B
Local Volumes       1         0         0B        0B
Build Cache         0         0         0B        0B

上面的输出中,Images 行显示了当前系统中的镜像数量为 2,其中活跃的镜像数量为 1,总占用空间为 69.14MB,可回收的空间也为 69.14MB (100%)。

使用 Python 脚本查看镜像占用空间

除了使用 Docker