如何使用 docker buildx inspect 命令查看构建器详情

DockerDockerBeginner
立即练习

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

简介

在本实验中,你将学习如何使用 docker buildx inspect 命令查看 Docker 构建器实例的详细信息。首先你将检查当前的构建器实例,然后学习如何通过名称指定构建器。

你还将探索如何在检查前使用 --bootstrap 标志确保构建器正在运行,以及如何通过 --debug 标志获取更详细的信息,从而全面了解构建器的配置和状态。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/inspect -.-> lab-555059{{"如何使用 docker buildx inspect 命令查看构建器详情"}} docker/build -.-> lab-555059{{"如何使用 docker buildx inspect 命令查看构建器详情"}} end

检查当前构建器实例

在本步骤中,你将学习如何检查当前的 Docker 构建器实例。Docker 构建器负责构建 Docker 镜像。通过检查构建器,你可以获取其配置和状态的相关信息。

首先,让我们使用不带构建器名称参数的 docker buildx inspect 命令来检查当前构建器实例。

docker buildx inspect

你将看到类似以下的输出,显示默认构建器实例的详细信息:

Name: default
Driver: docker
Nodes:
  default:
    Status: running
    Buildkitd:
      Version: v0.10.5
      Platforms:
        - linux/amd64
        - linux/arm64
        - linux/riscv64
        - linux/ppc64le
        - linux/s390x
        - linux/386
        - linux/arm/v7
        - linux/arm/v6

输出信息包含构建器名称、使用的驱动(本例中为 docker),以及构建节点的详细信息,包括节点状态、BuildKitd 版本和支持的平台架构。

通过名称检查特定构建器实例

在上一步中,你检查了当前的构建器实例。本步骤将教你如何通过名称检查特定的构建器实例。虽然初始时你可能只有默认构建器,但当配置了多个构建器时,了解如何指定名称就很有用了。

要检查特定的构建器实例,你需要使用 docker buildx inspect 命令后跟构建器名称。默认构建器通常命名为 default

让我们通过名称显式检查 default 构建器:

docker buildx inspect default

你应该会看到与上一步相同的输出,确认你正在检查 default 构建器实例:

Name: default
Driver: docker
Nodes:
  default:
    Status: running
    Buildkitd:
      Version: v0.10.5
      Platforms:
        - linux/amd64
        - linux/arm64
        - linux/riscv64
        - linux/ppc64le
        - linux/s390x
        - linux/386
        - linux/arm/v7
        - linux/arm/v6

这演示了如何使用构建器名称来指定特定实例进行检查。

使用 --bootstrap 参数确保构建器在检查前处于运行状态

在本步骤中,你将学习如何在 docker buildx inspect 命令中使用 --bootstrap 参数。该参数能确保在执行检查前构建器实例处于运行状态。如果构建器未运行,此参数会先启动它。

虽然默认构建器通常处于运行状态,但在需要确保构建器处于活动状态后再进行检查或其他构建操作时,使用 --bootstrap 参数是一个良好的实践。

让我们再次检查默认构建器,这次加上 --bootstrap 参数:

docker buildx inspect --bootstrap default

你将看到与之前相同的检查输出。--bootstrap 参数确保在执行检查前构建器处于运行状态。如果构建器原本处于停止状态,该命令会先启动它。

Name: default
Driver: docker
Nodes:
  default:
    Status: running
    Buildkitd:
      Version: v0.10.5
      Platforms:
        - linux/amd64
        - linux/arm64
        - linux/riscv64
        - linux/ppc64le
        - linux/s390x
        - linux/386
        - linux/arm/v7
        - linux/arm/v6

在脚本或自动化工作流中,--bootstrap 参数特别有用,它能确保在开始构建前构建器已准备就绪。

使用 --debug 参数查看详细信息

在最后这个步骤中,你将学习如何通过 docker buildx inspect 命令的 --debug 参数获取构建器实例的更详细信息。该参数会提供额外的输出内容,对于故障排查或深入了解构建器配置非常有帮助。

让我们再次检查默认构建器,这次加上 --debug 参数:

docker buildx inspect --debug default

你将看到标准的检查输出,但前面会附加调试日志。这些日志能让你了解 buildx inspect 命令的内部操作以及与 BuildKit 守护进程的通信情况。

调试输出会包含以 DEBU[... 开头的行,后面跟着关于进程的详细信息。这些信息可能包括 API 调用、配置加载以及其他内部操作。

DEBU[0000] loading config file /home/labex/.docker/config.json
DEBU[0000] Looking for builder "default"
DEBU[0000] found builder "default"
DEBU[0000] loading builder "default"
DEBU[0000] found 1 node(s) for builder "default"
DEBU[0000] loading node "default"
DEBU[0000] connecting to docker
DEBU[0000] running buildkitd container "buildx_buildkit_default"
DEBU[0000] buildkitd container "buildx_buildkit_default" is running
DEBU[0000] connecting to buildkitd
DEBU[0000] buildkitd connection successful
Name: default
Driver: docker
Nodes:
  default:
    Status: running
    Buildkitd:
      Version: v0.10.5
      Platforms:
        - linux/amd64
        - linux/arm64
        - linux/riscv64
        - linux/ppc64le
        - linux/s390x
        - linux/386
        - linux/arm/v7
        - linux/arm/v6

--debug 参数是一个强大的工具,既能用于诊断问题,也能帮助你更深入地理解 docker buildx 如何与底层的 BuildKit 服务进行交互。

总结

在本实验中,你学习了如何使用 docker buildx inspect 命令查看 Docker 构建器实例的详细信息。首先,你通过不指定名称的方式检查了当前构建器实例,这通常会显示默认构建器的信息。接着,你学习了如何通过提供名称来显式检查特定构建器实例,确认这种方式同样可以获取默认构建器的详细信息。

这些步骤展示了 docker buildx inspect 命令的基本用法,帮助你了解 Docker 构建环境的关键信息,包括构建器名称、驱动程序、节点状态、BuildKitd 版本以及支持的平台架构。