如何使用 docker buildx history rm 命令删除构建记录

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何使用 docker buildx history rm 命令管理构建记录。构建记录对于追踪构建过程及其结果具有重要价值。

你将首先使用 docker buildx build 创建构建记录并保存其元数据。接着,学习通过 docker buildx ls 列出现有构建记录并查看详细信息。最后,你将练习使用 docker buildx history rm 命令删除特定构建记录以及清除所有构建记录。


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/prune("Remove Unused Docker Objects") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555055{{"如何使用 docker buildx history rm 命令删除构建记录"}} docker/prune -.-> lab-555055{{"如何使用 docker buildx history rm 命令删除构建记录"}} docker/build -.-> lab-555055{{"如何使用 docker buildx history rm 命令删除构建记录"}} end

创建构建记录

在本步骤中,你将学习如何使用 docker buildx build 命令创建构建记录。构建记录可用于追踪构建结果,包括构建上下文、构建参数以及生成的镜像 ID。

首先,让我们创建一个简单的 Dockerfile 用于构建。进入你的项目目录,创建一个名为 Dockerfile 的文件,内容如下:

FROM alpine
CMD ["echo", "Hello, Docker!"]

这个 Dockerfile 非常简单。它使用 alpine 基础镜像,并定义了一个打印 "Hello, Docker!" 的命令。

现在,让我们基于这个 Dockerfile 构建镜像并创建构建记录。我们将使用 docker buildx build 命令配合 --metadata-file 参数将构建记录保存到文件中。

docker buildx build . --metadata-file build-record.json -t my-hello-image

在这个命令中:

  • docker buildx build . 告诉 Docker 使用当前目录下的 Dockerfile 构建镜像
  • --metadata-file build-record.json 指定将构建记录保存到名为 build-record.json 的文件中
  • -t my-hello-image 为生成的镜像打上 my-hello-image 的标签

运行命令后,你将看到构建过程的输出。当前目录下会生成一个名为 build-record.json 的文件,该文件以 JSON 格式包含了构建记录。

你可以使用 cat 命令查看 build-record.json 文件的内容:

cat build-record.json

这将显示构建记录的 JSON 内容,其中包含了关于此次构建的信息。

列出构建记录

在本步骤中,你将学习如何使用 docker buildx ls 命令列出已有的构建记录。该命令可以查看所有已创建的构建记录列表。

要列出构建记录,只需运行以下命令:

docker buildx ls

此命令会显示一个表格,包含可用构建记录的相关信息。输出通常包括构建器名称、使用的驱动类型以及状态。

你应该能看到默认构建器的条目,这是运行 docker buildx build 时使用的构建器。我们在上一步创建的构建记录就关联着这个构建器。

docker buildx ls 命令对于获取构建环境及其关联构建记录的概览非常有用。

删除特定构建记录

在本步骤中,你将学习如何使用 docker buildx prune 命令删除特定的构建记录。这对于清理不再需要的单个构建记录非常有用。

要删除特定构建记录,首先需要获取其 ID。你可以在第一步创建的 build-record.json 文件中找到构建记录 ID。使用 cat 命令查看文件内容:

cat build-record.json

在 JSON 输出中找到 "BuildRecord" 部分。该部分包含一个 "ID" 字段,复制这个 ID 值(通常是一长串字符)。

现在使用 docker buildx prune 命令配合 --keep-storage 参数和构建记录 ID 来删除特定记录。将 <BUILD_RECORD_ID> 替换为你复制的实际 ID:

docker buildx prune --keep-storage <BUILD_RECORD_ID>

此处使用 --keep-storage 参数表示我们只清理构建记录,而不清理构建缓存。

运行命令后,你将看到确认构建记录已被删除的输出。

要验证构建记录是否已删除,可以再次列出构建记录:

docker buildx ls

你删除的特定构建记录应该不再出现在列表中。

删除所有构建记录

在本步骤中,你将学习如何使用带 --all 参数的 docker buildx prune 命令删除所有构建记录。这是批量清理所有构建记录的高效方式。

要删除所有构建记录,请运行以下命令:

docker buildx prune --all --keep-storage --force

该命令中各参数含义如下:

  • docker buildx prune 是用于删除构建相关数据的命令
  • --all 表示删除所有构建记录
  • --keep-storage 表示仅清理构建记录而保留构建缓存
  • --force 跳过确认提示,适用于脚本或非交互式环境

运行命令后,你将看到构建记录已被删除的输出提示。

要验证所有构建记录是否已删除,可以再次列出构建记录:

docker buildx ls

此时你应该只能看到默认构建器的条目,其下不会显示任何具体的构建记录。

至此,关于 Docker 构建记录管理的实验已完成。你已掌握如何创建、列出和删除构建记录。

总结

在本实验中,你学习了如何使用 docker buildx 管理 Docker 构建记录。首先创建了一个简单的 Dockerfile,然后使用带 --metadata-file 参数的 docker buildx build 命令构建镜像并生成构建记录,将其保存为 JSON 文件。接着学习了如何使用 docker buildx ls 命令列出现有构建记录,查看构建信息。

实验还涵盖了如何使用 docker buildx history rm <record_id> 删除特定构建记录,以及如何使用 docker buildx history rm --all 一次性删除所有构建记录。这些步骤展示了 Docker Buildx 中构建记录的生命周期管理。