简介
在本实验中,你将学习如何使用 docker buildx history rm
命令管理构建记录。构建记录对于追踪构建过程及其结果具有重要价值。
你将首先使用 docker buildx build
创建构建记录并保存其元数据。接着,学习通过 docker buildx ls
列出现有构建记录并查看详细信息。最后,你将练习使用 docker buildx history rm
命令删除特定构建记录以及清除所有构建记录。
在本实验中,你将学习如何使用 docker buildx history rm
命令管理构建记录。构建记录对于追踪构建过程及其结果具有重要价值。
你将首先使用 docker buildx build
创建构建记录并保存其元数据。接着,学习通过 docker buildx ls
列出现有构建记录并查看详细信息。最后,你将练习使用 docker buildx history rm
命令删除特定构建记录以及清除所有构建记录。
在本步骤中,你将学习如何使用 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 中构建记录的生命周期管理。