如何使用 docker buildx du 命令检查磁盘使用情况

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何高效使用 docker buildx du 命令来检查和理解 Docker 构建缓存的磁盘使用情况。首先,你将查看当前构建器的基本磁盘使用情况,并理解输出列的含义,包括 CACHE IDSIZELAST ACCESSED

此外,你还将探索如何使用详细输出来获取单个缓存记录的更多详细信息,并学习如何检查特定构建器实例的磁盘使用情况,从而更有效地管理和优化你的构建缓存。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/SystemManagementGroup -.-> docker/system("Manage Docker") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555048{{"如何使用 docker buildx du 命令检查磁盘使用情况"}} docker/system -.-> lab-555048{{"如何使用 docker buildx du 命令检查磁盘使用情况"}} docker/build -.-> lab-555048{{"如何使用 docker buildx du 命令检查磁盘使用情况"}} end

查看当前构建器的磁盘使用情况

在本步骤中,你将学习如何检查当前 Docker 构建器的磁盘使用情况。docker buildx du 命令用于显示构建缓存的磁盘使用情况,这有助于了解构建缓存占用了多少空间,并识别可能需要清理的部分。

首先,让我们不带任何选项执行 docker buildx du 命令,查看当前构建器的基本磁盘使用信息。

docker buildx du

你应该会看到类似以下的输出,显示构建缓存的总大小。具体大小会根据你之前的构建活动而有所不同。

CACHE ID                                    SIZE      LAST ACCESSED
... (output will vary)
TOTAL: 123.4MB

输出结果展示了缓存条目的 ID、大小以及最后访问时间。末尾的 TOTAL 行表示当前构建器的构建缓存占用的总磁盘空间。

理解 docker buildx du 的输出

在上一步中,你执行了 docker buildx du 命令并看到了显示缓存条目和总大小的输出。本步骤我们将深入理解输出中的各个列。

让我们再次查看输出:

CACHE ID                                    SIZE      LAST ACCESSED
... (output will vary)
TOTAL: 123.4MB
  • CACHE ID:这是每个缓存条目的唯一标识符。这些 ID 由 BuildKit 生成,代表构建过程中被缓存的不同层或阶段。
  • SIZE:该列显示特定缓存条目的大小,表示该缓存层或阶段占用的磁盘空间大小。
  • LAST ACCESSED:这表示该缓存条目在构建过程中最后一次被使用的时间。此信息有助于识别不再活跃使用的缓存条目,这些条目可以被清理以释放空间。

底部的 TOTAL 行提供了所有列出的缓存条目大小的总和,显示当前构建器的构建缓存总体磁盘使用情况。理解这些列有助于你分析构建缓存并有效管理其大小。

使用详细输出来检查磁盘使用记录

在本步骤中,你将学习如何通过 docker buildx du 命令的详细输出选项获取构建缓存条目的更多详细信息。详细输出提供了额外的细节,有助于调试和理解缓存层的来源。

要获取详细输出,请在 docker buildx du 命令中使用 -v--verbose 标志:

docker buildx du -v

现在输出将包含更多列,例如 USAGEDESCRIPTION,以及根据缓存条目类型可能包含的其他列。

CACHE ID                                    SIZE      LAST ACCESSED   USAGE     DESCRIPTION
... (output will vary)
TOTAL: 123.4MB
  • USAGE:该列可能提供有关缓存条目如何被使用或引用的信息。
  • DESCRIPTION:该列通常包含生成此缓存条目的构建步骤或指令的描述。这对于识别 Dockerfile 或构建过程中哪些部分影响了缓存大小非常有用。

通过检查详细输出中的 DESCRIPTION 列,你可以看到哪些特定的构建指令(如 RUNCOPY 等)对应每个缓存条目。这有助于你理解构建缓存的结构,并找出可以优化 Dockerfile 以减少缓存大小的部分。

检查特定构建器实例的磁盘使用情况

在本步骤中,你将学习如何检查特定 Docker 构建器实例的磁盘使用情况。默认情况下,docker buildx du 会显示当前活跃构建器的磁盘使用情况。但你可能配置了多个构建器实例,这时你可能需要检查其他构建器的缓存使用情况。

首先,让我们列出可用的构建器实例以确定你要检查的目标。可以使用 docker buildx ls 命令:

docker buildx ls

输出将显示你的构建器实例列表。查看 NAME 列以确定你感兴趣的构建器名称。当前活跃的构建器会标有星号 (*)。

NAME/NODE       DRIVER/ENDPOINT             STATUS   BUILDKIT             PLATFORMS
default *       docker                      running  v0.10.5+a34f333b1f   linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
mybuilder       docker-container            running  v0.10.5+a34f333b1f   linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6

现在,要检查特定构建器实例的磁盘使用情况,可以使用 --builder 标志后跟构建器名称。例如,如果你有一个名为 mybuilder 的构建器,可以运行:

docker buildx du --builder mybuilder

mybuilder 替换为你实际要检查的构建器实例名称。该命令将专门显示与该构建器实例关联的缓存磁盘使用情况。这在处理不同构建器配置或需要隔离特定构建环境的缓存使用时非常有用。

总结

在本实验中,你学习了如何使用 docker buildx du 命令检查 Docker 构建缓存的磁盘使用情况。首先通过执行基本命令查看缓存总大小和条目列表。

随后你深入理解了输出列的含义,包括 CACHE IDSIZELAST ACCESSED 等字段,这些字段提供了各个缓存条目的详细信息。你还探索了如何使用详细输出选项 (-v) 查看每个缓存条目更详细的记录,并学会了通过指定构建器名称来检查特定构建器实例的磁盘使用情况。