Cómo usar el comando docker service inspect para ver detalles del servicio

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo utilizar el comando docker service inspect para ver información detallada sobre los servicios de Docker. Explorará diferentes formas de inspeccionar un servicio, incluyendo por su nombre y por su ID único.

Además, descubrirá cómo formatear la salida del comando docker service inspect utilizando las opciones --pretty y --format para controlar el nivel de detalle y la presentación de la información del servicio.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555225{{"Cómo usar el comando docker service inspect para ver detalles del servicio"}} docker/inspect -.-> lab-555225{{"Cómo usar el comando docker service inspect para ver detalles del servicio"}} docker/create -.-> lab-555225{{"Cómo usar el comando docker service inspect para ver detalles del servicio"}} end

Inspeccionar un servicio por nombre

En este paso, aprenderá cómo inspeccionar un servicio de Docker por su nombre. El comando docker service inspect proporciona información detallada sobre un servicio, incluyendo su configuración, tareas y configuración de red.

Primero, creemos un servicio simple para inspeccionar. Crearemos un servicio llamado my-web-service utilizando la imagen nginx. Dado que Docker Compose no está preinstalado, utilizaremos directamente el comando docker service create.

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

Debería ver una salida que indique que el servicio se ha creado. Docker descargará la imagen nginx si no está presente en su sistema.

Ahora que el servicio está creado, puede inspeccionarlo por nombre utilizando el comando docker service inspect seguido del nombre del servicio.

docker service inspect my-web-service

Este comando generará un gran objeto JSON que contiene todos los detalles sobre el my-web-service. Esta salida puede ser bastante extensa y ofrece una visión profunda de la configuración y el estado del servicio.

Inspeccionar un servicio por ID

En el paso anterior, aprendiste cómo inspeccionar un servicio por su nombre. Docker también asigna un ID único a cada servicio. También puedes utilizar este ID para inspeccionar el servicio. Esto es especialmente útil cuando tienes múltiples servicios con nombres similares o cuando estás escribiendo scripts.

Primero, obtengamos el ID del my-web-service que creamos en el paso anterior. Puedes utilizar el comando docker service ls para listar todos los servicios en ejecución y sus IDs.

docker service ls

La salida mostrará una tabla con columnas como ID, NAME, MODE, REPLICAS e IMAGE. La columna ID contiene el identificador único de cada servicio. Copia el ID del my-web-service. Será una cadena de caracteres.

Ahora, utiliza el comando docker service inspect seguido del ID del servicio que copiaste. Reemplaza <SERVICE_ID> con el ID real.

docker service inspect <SERVICE_ID>

Verás la misma salida JSON detallada que cuando inspeccionaste por nombre. Esto demuestra que puedes utilizar tanto el nombre del servicio como su ID para obtener los detalles de la inspección. Utilizar el ID suele ser más preciso, especialmente en scripts automatizados.

Formatear la salida usando --pretty

En los pasos anteriores, viste que la salida predeterminada de docker service inspect es un gran objeto JSON. Aunque es exhaustiva, este formato puede ser difícil de leer para obtener una visión general rápida. Docker proporciona la opción --pretty para mostrar la información en un formato más legible para humanos.

Vamos a inspeccionar el my-web-service de nuevo, esta vez usando la opción --pretty.

docker service inspect --pretty my-web-service

Notarás que la salida ahora está formateada de una manera más fácil de revisar y entender. Presenta información clave como el ID del servicio, el nombre, el modo, las réplicas y la imagen en un diseño estructurado, en lugar de una salida JSON sin procesar. Esto es muy útil para comprobar rápidamente el estado y la configuración básica de un servicio.

La opción --pretty es una forma conveniente de obtener un resumen de los detalles del servicio sin tener que analizar la salida JSON completa.

Formatear la salida usando --format

Si bien --pretty proporciona un resumen legible para humanos, la opción --format te permite tener un control detallado sobre el formato de salida utilizando la sintaxis de plantillas de Go. Esto es increíblemente poderoso para extraer piezas específicas de información o formatear la salida para scripts o informes.

La sintaxis de plantillas de Go te permite acceder a los campos dentro de la salida JSON del comando inspect. Por ejemplo, para obtener solo el ID y el nombre del servicio, puedes utilizar una cadena de formato como {{.ID}} {{.Spec.Name}}.

Intentemos inspeccionar el my-web-service y formatear la salida para mostrar solo el ID y el nombre del servicio.

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

Deberías ver una salida similar a:

<SERVICE_ID> my-web-service

donde <SERVICE_ID> es el ID real de tu servicio.

Puedes acceder a campos anidados utilizando puntos. Por ejemplo, para obtener el nombre de la imagen, utilizarías {{.Spec.TaskTemplate.ContainerSpec.Image}}.

Intentemos otro ejemplo para obtener el nombre del servicio y la imagen que está utilizando.

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

La salida será:

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

La opción --format es muy flexible y te permite adaptar la salida a tus necesidades específicas. Puedes explorar la salida JSON completa (sin --pretty o --format) para entender la estructura e identificar los campos que deseas extraer.

Resumen

En este laboratorio, aprendiste cómo utilizar el comando docker service inspect para ver información detallada sobre los servicios de Docker. Practicaste la inspección de un servicio por su nombre, primero creando un simple servicio nginx llamado my-web-service utilizando docker service create, y luego utilizando docker service inspect my-web-service para recuperar su configuración y estado en formato JSON.

También aprendiste cómo inspeccionar un servicio utilizando su ID único. Al utilizar docker service ls para encontrar el ID del servicio, pudiste utilizar docker service inspect <SERVICE_ID> para obtener la misma información detallada, lo que demuestra un método alternativo para inspeccionar servicios, especialmente útil en scripts o cuando los nombres son ambiguos.