如何使用 docker system df 命令检查磁盘使用情况

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本次实验中,你将学习如何有效地监控和管理 Docker 占用的磁盘空间。我们将探讨 docker system df 命令,首先会查看一个关于镜像、容器、卷和构建缓存的磁盘使用情况的概要视图。

在了解概要信息之后,你将深入查看更详细的视图,以确定占用大量空间的具体组件。最后,你将学习如何将 docker system df 的输出格式化为 JSON,以便更轻松地解析并集成到脚本或监控工具中。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/system -.-> lab-555247{{"如何使用 docker system df 命令检查磁盘使用情况"}} end

查看 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 磁盘使用的更详细信息。这种详细输出会列出各个镜像、容器和卷,使你能够确定占用磁盘空间的具体项目。