Como usar o comando docker buildx inspect para visualizar detalhes do construtor

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o comando docker buildx inspect para visualizar detalhes sobre suas instâncias de construtor Docker (Docker builder). Você começará inspecionando a instância de construtor atual e, em seguida, aprenderá como especificar um construtor por nome.

Você também explorará como garantir que um construtor esteja em execução antes da inspeção usando a flag --bootstrap e como obter informações mais detalhadas com a flag --debug, obtendo uma compreensão abrangente da configuração e do status do seu construtor.

Inspecionar a instância do construtor atual

Nesta etapa, você aprenderá como inspecionar a instância de construtor Docker atual. O construtor Docker é responsável por construir imagens Docker. Ao inspecionar o construtor, você pode obter informações sobre sua configuração e status.

Primeiro, vamos usar o comando docker buildx inspect sem especificar um nome de construtor. Isso inspecionará a instância de construtor atual.

docker buildx inspect

Você deve ver uma saída semelhante a esta, mostrando detalhes sobre a instância de construtor padrão:

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

A saída fornece informações como o nome do construtor, o driver que ele usa (neste caso, docker) e detalhes sobre os nós de construção, incluindo seu status, versão do BuildKitd e plataformas suportadas.

Inspecionar uma instância de construtor específica por nome

Na etapa anterior, você inspecionou a instância de construtor atual. Nesta etapa, você aprenderá como inspecionar uma instância de construtor específica por seu nome. Embora você possa ter apenas o construtor padrão inicialmente, saber como especificar um nome é útil quando você tem vários construtores configurados.

Para inspecionar uma instância de construtor específica, você usa o comando docker buildx inspect seguido pelo nome do construtor. O construtor padrão é normalmente chamado de default.

Vamos inspecionar o construtor default explicitamente por nome:

docker buildx inspect default

Você deve ver a mesma saída da etapa anterior, confirmando que você está inspecionando a instância de construtor 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

Isso demonstra como direcionar uma instância de construtor específica para inspeção usando seu nome.

Certifique-se de que o construtor está em execução antes de inspecionar com --bootstrap

Nesta etapa, você aprenderá como usar a flag --bootstrap com docker buildx inspect. A flag --bootstrap garante que a instância do construtor esteja em execução antes de tentar inspecioná-la. Se o construtor não estiver em execução, esta flag o iniciará.

Embora o construtor padrão geralmente esteja em execução, é uma boa prática usar --bootstrap quando você deseja garantir que o construtor esteja ativo antes da inspeção ou outras operações de construção.

Vamos inspecionar o construtor padrão novamente, desta vez usando a flag --bootstrap:

docker buildx inspect --bootstrap default

Você deve ver a mesma saída de inspeção de antes. A flag --bootstrap garante que o construtor esteja em um estado de execução antes que a inspeção seja realizada. Se o construtor tivesse sido parado, este comando o teria iniciado primeiro.

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

Usar --bootstrap é particularmente útil em scripts ou fluxos de trabalho automatizados onde você precisa garantir que o construtor esteja pronto antes de prosseguir com uma construção.

Visualizar informações detalhadas com --debug

Nesta etapa final, você aprenderá como obter informações mais detalhadas sobre uma instância de construtor usando a flag --debug com docker buildx inspect. A flag --debug fornece uma saída adicional que pode ser útil para solucionar problemas ou entender a configuração do construtor com mais profundidade.

Vamos inspecionar o construtor padrão novamente, desta vez incluindo a flag --debug:

docker buildx inspect --debug default

Você verá a saída de inspeção padrão, mas ela será precedida por logs de depuração (debug). Esses logs fornecem insights sobre as operações internas do comando buildx inspect e a comunicação com o daemon BuildKit.

A saída de depuração incluirá linhas começando com DEBU[... seguido por informações detalhadas sobre o processo. Isso pode incluir coisas como chamadas de API sendo feitas, carregamento de configuração e outros funcionamentos internos.

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

A flag --debug é uma ferramenta poderosa para diagnosticar problemas ou obter uma compreensão mais profunda de como docker buildx interage com o serviço BuildKit subjacente.

Resumo

Neste laboratório, você aprendeu como usar o comando docker buildx inspect para visualizar detalhes sobre as instâncias do construtor Docker. Você começou inspecionando a instância do construtor atual sem especificar um nome, o que normalmente mostra informações sobre o construtor padrão. Em seguida, você aprendeu como inspecionar explicitamente uma instância de construtor específica fornecendo seu nome, confirmando que isso produz os mesmos detalhes para o construtor padrão.

Essas etapas demonstraram o uso básico de docker buildx inspect para obter informações sobre seu ambiente de construção Docker, incluindo o nome do construtor, driver, status do nó, versão do BuildKitd e plataformas suportadas.