如何使用 docker buildx history ls 命令查看构建记录

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何使用 docker buildx history ls 命令来管理和查看 Docker 构建记录。我们将从使用 docker buildx build 构建一个简单的 Docker 镜像开始,该命令会自动创建构建记录。

完成镜像构建后,你将探索如何使用 docker buildx history ls 列出所有构建记录。接着你将学习如何通过 --filter 选项按状态筛选这些记录,以及如何使用 --format 选项自定义输出格式。最后,你将了解如何通过 --local 选项仅列出本地构建记录。本实验将帮助你掌握跟踪和分析 Docker 构建历史的实用技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/build -.-> lab-555053{{"如何使用 docker buildx history ls 命令查看构建记录"}} end

构建简单镜像以创建构建记录

在这一步骤中,我们将构建一个简单的 Docker 镜像。使用 Docker Buildx 构建镜像时会自动创建构建记录。构建记录包含有关构建的信息,例如构建参数、构建上下文和生成的镜像。

首先,让我们在 ~/project 目录下创建一个简单的 Dockerfile。该 Dockerfile 将基于 ubuntu 镜像创建一个安装了 curl 的镜像。

cd ~/project
nano Dockerfile

将以下内容添加到 Dockerfile 中:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl

保存并关闭文件。

现在,让我们使用 docker buildx build 构建镜像。我们将镜像标记为 my-ubuntu-curl

docker buildx build -t my-ubuntu-curl .

该命令将基于当前目录(.)中的 Dockerfile 构建镜像,并将其标记为 my-ubuntu-curl。Docker Buildx 会自动为此构建创建一个构建记录。

构建完成后,你将看到显示构建过程和镜像成功创建的输出信息。

使用 docker buildx history ls 列出所有构建记录

在这一步骤中,我们将学习如何使用 docker buildx history ls 命令列出所有构建记录。正如我们在上一步骤中看到的,使用 docker buildx build 构建镜像时会自动创建构建记录。这些记录会被存储,可用于追踪你的构建历史。

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

docker buildx history ls

该命令会显示一个表格,包含每个构建记录的信息。输出通常包括构建 ID、使用的构建器、构建状态、构建持续时间以及构建创建时间。

你应该能在输出中看到至少一条记录,对应我们在上一步骤中构建的镜像(my-ubuntu-curl)。

docker buildx history ls 命令对于获取构建活动概览和识别特定构建非常有用。

使用 --filter 选项按状态筛选构建记录

在这一步骤中,我们将学习如何结合 docker buildx history ls 命令使用 --filter 选项,根据构建状态筛选记录。当你只想查看特定状态的构建(如已完成或失败的构建)时,这个功能非常实用。

--filter 选项采用 key=value 格式的键值对参数。要按状态筛选,我们使用 status 作为键名。状态的可能取值包括 complete(已完成)、running(运行中)、failed(失败)等。

由于我们在第一步执行的构建是成功的,其状态应为 complete。让我们筛选构建历史,仅显示已完成的构建:

docker buildx history ls --filter status=complete

该命令将仅显示状态为 complete 的构建记录。你应该能在输出中看到 my-ubuntu-curl 的构建记录。

如果你有任何失败的构建,可以使用 --filter status=failed 来筛选它们。

使用 --format 选项格式化构建记录输出

在本步骤中,我们将学习如何使用 --format 选项来格式化 docker buildx history ls 命令的输出。这允许你自定义显示的信息及其呈现格式。

--format 选项接受一个 Go 模板字符串。你可以使用 .ID.Builder.Status.Duration.CreatedAt 等占位符来包含构建记录中的特定信息。

让我们尝试格式化输出,仅显示构建 ID 和状态,并用冒号分隔:

docker buildx history ls --format "{{.ID}}: {{.Status}}"

该命令将在新行输出每个构建记录,显示构建 ID 后跟冒号及其状态。

你可以通过组合不同的占位符和文本来创建更复杂的格式。例如,要显示构建器和持续时间:

docker buildx history ls --format "Builder: {{.Builder}}, Duration: {{.Duration}}"

尝试不同的格式字符串,看看如何根据你的需求自定义输出。

使用 --local 选项列出本地构建记录

在本步骤中,我们将探索 docker buildx history ls 命令的 --local 选项。默认情况下,docker buildx history ls 会列出所有构建器的构建记录,而 --local 选项会将输出限制为仅显示当前构建器实例的记录。

要仅列出本地构建记录,请使用以下命令:

docker buildx history ls --local

在当前实验环境中,由于我们只使用了默认构建器,docker buildx history lsdocker buildx history ls --local 的输出很可能是相同的。但在具有多个构建器的环境中,此选项对于专注于特定构建器的历史记录非常有用。

至此,我们完成了对 Docker Buildx 构建历史记录查看和筛选功能的探索。你现在已经掌握了如何查看构建记录、按状态筛选记录、格式化输出以及列出本地构建器记录的方法。

总结

在本实验中,我们学习了如何使用 docker buildx history ls 命令来管理构建记录。我们首先使用 docker buildx build 构建了一个简单的 Docker 镜像,该命令会自动创建构建记录。然后我们使用 docker buildx history ls 列出了所有可用的构建记录,并观察了每个构建的相关信息。

通过使用 --filter 选项按状态筛选构建记录,以及使用 --format 选项自定义输出格式,我们进一步探索了 docker buildx history ls 的功能。最后,我们还学习了如何使用 --local 选项仅列出本地构建记录,从而全面掌握了管理和检查 Docker Buildx 构建历史的方法。