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.



