📜  列出按大小排序的 docker 图像 (1)

📅  最后修改于: 2023-12-03 15:36:51.586000             🧑  作者: Mango

列出按大小排序的 Docker 图像

在 Docker 中使用镜像是非常常见的操作,但是随着时间的推移,我们的 Docker 容器中可能会存在大量的无用或过时的镜像,为了释放空间和保持 Docker 容器的清洁度,我们需要列出按照大小排序的镜像,这样我们就可以轻松地找到其中最大的那些,然后根据需要进行删除。本文将介绍如何列出按照大小排序的 Docker 镜像。

命令行操作

在命令行中使用以下命令就可以列出当前 Docker 管理的所有镜像,并按照大小从大到小排序:

docker image ls --format '{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}' | \
awk '{print $1/1024/1024" MB \t" $2 "\t" $3}' | \
sort -h

执行此命令后,您将看到类似以下的输出:

0.0347528 MB     ubuntu:bionic-20200807   4c1083a3877f
0.0370989 MB     python:3.6               a4ccfabf4a4b
0.0383692 MB     python:2.7               7acd8d85454f
0.0399761 MB     golang:1.14              0a48efcdce41
0.049511 MB      alpine:3.12              69e70a79b712
0.0507526 MB     node:12                  da17ff423c3f
...

其中第一列是镜像的大小(以 MB 为单位),第二列是镜像的名称和标签,第三列是镜像的 ID。

请注意,此命令默认会显示所有镜像,包括中间镜像。您可以通过添加 --filter--all 参数来过滤或显示特定的镜像。例如,以下命令将只显示 hello-world 镜像的大小:

docker image ls --filter reference=hello-world --format '{{.Size}}\t{{.Repository}}:{{.Tag}}\t{{.ID}}' | \
awk '{print $1/1024/1024" MB \t" $2 "\t" $3}' | \
sort -h

执行此命令后,您将会看到类似以下的输出内容:

0.00237846 MB   hello-world:latest  0e4537a60d65
使用第三方工具

除了命令行方式,还有一些第三方工具可以轻松地列出按照大小排序的 Docker 镜像。其中一个工具是 "Kitematic",它是 Docker 提供的官方图形用户界面。在 Docker Hub 的页面,您可以下载并安装它。在 Kitematic 中,您可以通过点击镜像列表的表头中的"Size" 来排序,从而找到最大的镜像。

还有另外一个工具,叫做"Portainer",这是一个使用 Go 语言编写的 Docker 容器管理器,提供了一个美观而易于使用的 Web UI。与 Kitematic 类似,在 Portainer 的界面中,您可以在镜像列表上按"Size" 进行排序。

结论

无论是命令行操作还是使用第三方工具,列出按照大小排序的 Docker 镜像是非常有用的操作。它可以帮助我们找到最大的镜像,然后有针对性地对 Docker 容器进行维护,使其保持清洁和高效。