介绍
在本次实验中,你将学习如何有效地监控和管理 Docker 占用的磁盘空间。我们将探讨 docker system df 命令,首先会查看一个关于镜像、容器、卷和构建缓存的磁盘使用情况的概要视图。
在了解概要信息之后,你将深入查看更详细的视图,以确定占用大量空间的具体组件。最后,你将学习如何将 docker system df 的输出格式化为 JSON,以便更轻松地解析并集成到脚本或监控工具中。
检查 Docker 磁盘使用概要
在这一步中,你将学习如何查看 Docker 磁盘使用情况的概要信息。Docker 使用磁盘空间来存储镜像、容器、卷和构建缓存。监控磁盘使用情况对于防止系统磁盘空间耗尽非常重要。
docker system df 命令可以提供不同 Docker 组件所使用磁盘空间的概要信息。让我们运行这个命令来查看当前的磁盘使用情况。
docker system df
你应该会看到类似如下的输出:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images X X X X
Containers X X X X
Local Volumes X X X X
Build Cache X X X X
该输出显示了镜像、容器、本地卷和构建缓存的总项目数、活动项目数、占用的总大小,以及通过移除未使用项目可回收的空间量。
检查 Docker 磁盘详细使用情况
在上一步中,你已经看到了 Docker 磁盘使用情况的概要信息。现在,让我们来探讨如何获取特定 Docker 组件所占用磁盘空间的更详细信息。
要查看有关镜像、容器和本地卷的详细信息,你可以使用 docker system df -v 命令。-v 标志会提供更详细的输出。
让我们运行这个命令:
docker system df -v
输出将比概要视图更详细。你将看到各个镜像、容器和卷的列表,以及它们的大小和其他相关信息。
例如,镜像部分可能如下所示:
Images space usage:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest abcdef123456 2 weeks ago 72.9MB
nginx latest fedcba654321 3 weeks ago 133MB
这个详细视图有助于你确定哪些特定的镜像、容器或卷占用了最多的磁盘空间。
将 docker system df 输出格式化为 JSON
在前面的步骤中,你学习了如何以人类可读的格式查看 Docker 磁盘使用情况。有时,你可能需要以编程方式处理这些信息。Docker 允许你使用 --format 标志来格式化命令的输出。
要以 JSON 格式获取 docker system df 的输出,你可以使用 --format json 选项。这对于编写脚本或将 Docker 磁盘使用信息集成到其他工具中非常有用。
让我们使用 JSON 格式选项运行该命令:
docker system df --format json
输出将是一个 JSON 数组,其中包含表示每个组件(镜像、容器、本地卷、构建缓存)磁盘使用情况的对象。
例如,输出可能如下所示(为便于阅读进行了格式化):
[
{
"Type": "Images",
"Total": 2,
"Active": 2,
"Size": 205800000,
"Reclaimable": 0
},
{
"Type": "Containers",
"Total": 0,
"Active": 0,
"Size": 0,
"Reclaimable": 0
},
{
"Type": "Local Volumes",
"Total": 0,
"Active": 0,
"Size": 0,
"Reclaimable": 0
},
{
"Type": "Build Cache",
"Total": 0,
"Active": 0,
"Size": 0,
"Reclaimable": 0
}
]
这个 JSON 输出可以很容易地被编程语言或像 jq 这样的命令行工具解析,以便进行进一步处理。
总结
在本次实验中,你学习了如何使用 docker system df 命令来监控 Docker 磁盘使用情况。你首先查看了 Docker 镜像、容器、卷和构建缓存所占用磁盘空间的概要信息,了解了每个组件的总数、活跃数量、大小和可回收空间。
随后,你探索了如何通过在 docker system df 命令中使用 -v 标志来获取 Docker 磁盘使用的更详细信息。这种详细输出会列出各个镜像、容器和卷,使你能够确定占用磁盘空间的具体项目。



