Como usar o comando docker service inspect para visualizar detalhes do serviço

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o comando docker service inspect para visualizar informações detalhadas sobre os serviços Docker. Você explorará diferentes maneiras de inspecionar um serviço, incluindo por seu nome e por seu ID único.

Além disso, você descobrirá como formatar a saída do comando docker service inspect usando as opções --pretty e --format para controlar o nível de detalhe e a apresentação das informações do serviço.

Inspecionar um serviço por nome

Nesta etapa, você aprenderá como inspecionar um serviço Docker por seu nome. O comando docker service inspect fornece informações detalhadas sobre um serviço, incluindo sua configuração, tarefas e configurações de rede.

Primeiro, vamos criar um serviço simples para inspecionar. Criaremos um serviço chamado my-web-service usando a imagem nginx. Como o Docker Compose não está pré-instalado, usaremos o comando docker service create diretamente.

docker service create --name my-web-service nginx

Você deve ver uma saída indicando que o serviço foi criado. O Docker fará o pull da imagem nginx se ela ainda não estiver presente em seu sistema.

Agora que o serviço foi criado, você pode inspecioná-lo por nome usando o comando docker service inspect seguido pelo nome do serviço.

docker service inspect my-web-service

Este comando exibirá um grande objeto JSON contendo todos os detalhes sobre o my-web-service. Esta saída pode ser bastante extensa, fornecendo uma visão aprofundada da configuração e do estado do serviço.

Inspecionar um serviço por ID

Na etapa anterior, você aprendeu como inspecionar um serviço por seu nome. O Docker também atribui um ID único a cada serviço. Você pode usar este ID para inspecionar o serviço também. Isso é particularmente útil quando você tem vários serviços com nomes semelhantes ou ao criar scripts.

Primeiro, vamos obter o ID do my-web-service que criamos na etapa anterior. Você pode usar o comando docker service ls para listar todos os serviços em execução e seus IDs.

docker service ls

A saída mostrará uma tabela com colunas como ID, NAME, MODE, REPLICAS e IMAGE. A coluna ID contém o identificador único para cada serviço. Copie o ID do my-web-service. Será uma string de caracteres.

Agora, use o comando docker service inspect seguido pelo ID do serviço que você copiou. Substitua <SERVICE_ID> pelo ID real.

docker service inspect <SERVICE_ID>

Você verá a mesma saída JSON detalhada que quando inspecionou por nome. Isso demonstra que você pode usar o nome do serviço ou seu ID para obter os detalhes da inspeção. Usar o ID é frequentemente mais preciso, especialmente em scripts automatizados.

Formatar a saída usando --pretty

Nas etapas anteriores, você viu que a saída padrão de docker service inspect é um grande objeto JSON. Embora abrangente, este formato pode ser difícil de ler para uma visão geral rápida. O Docker fornece a flag --pretty para exibir as informações em um formato mais legível para humanos.

Vamos inspecionar o my-web-service novamente, desta vez usando a flag --pretty.

docker service inspect --pretty my-web-service

Você notará que a saída agora está formatada de uma maneira que é mais fácil de examinar e entender. Ela apresenta informações-chave como o ID do serviço, nome, modo, réplicas e imagem em um layout estruturado, em vez de um despejo JSON bruto. Isso é muito útil para verificar rapidamente o status e a configuração básica de um serviço.

A flag --pretty é uma maneira conveniente de obter um resumo dos detalhes do serviço sem ter que analisar a saída JSON completa.

Formatar a saída usando --format

Enquanto --pretty fornece um resumo legível para humanos, a flag --format oferece controle preciso sobre o formato da saída usando a sintaxe de template Go. Isso é incrivelmente poderoso para extrair informações específicas ou formatar a saída para scripting ou relatórios.

A sintaxe de template Go permite que você acesse campos dentro da saída JSON do comando inspect. Por exemplo, para obter apenas o ID e o nome do serviço, você pode usar uma string de formato como {{.ID}} {{.Spec.Name}}.

Vamos tentar inspecionar o my-web-service e formatar a saída para mostrar apenas o ID e o nome do serviço.

docker service inspect --format '{{.ID}} {{.Spec.Name}}' my-web-service

Você deve ver uma saída semelhante a:

<SERVICE_ID> my-web-service

onde <SERVICE_ID> é o ID real do seu serviço.

Você pode acessar campos aninhados usando pontos. Por exemplo, para obter o nome da imagem, você usaria {{.Spec.TaskTemplate.ContainerSpec.Image}}.

Vamos tentar outro exemplo para obter o nome do serviço e a imagem que ele está usando.

docker service inspect --format 'Service Name: {{.Spec.Name}}, Image: {{.Spec.TaskTemplate.ContainerSpec.Image}}' my-web-service

A saída será:

Service Name: my-web-service, Image: nginx

A flag --format é muito flexível e permite que você adapte a saída às suas necessidades específicas. Você pode explorar a saída JSON completa (sem --pretty ou --format) para entender a estrutura e identificar os campos que deseja extrair.

Resumo

Neste laboratório, você aprendeu como usar o comando docker service inspect para visualizar informações detalhadas sobre serviços Docker. Você praticou a inspeção de um serviço por seu nome, primeiro criando um serviço nginx simples chamado my-web-service usando docker service create, e depois usando docker service inspect my-web-service para recuperar sua configuração e estado em formato JSON.

Você também aprendeu como inspecionar um serviço usando seu ID único. Ao usar docker service ls para encontrar o ID do serviço, você foi capaz de usar docker service inspect <SERVICE_ID> para obter as mesmas informações detalhadas, demonstrando um método alternativo para inspecionar serviços, particularmente útil em scripting ou quando os nomes são ambíguos.