Cómo usar el comando docker network inspect para ver detalles de la red

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 network inspect para ver información detallada sobre las redes de Docker. Comenzará creando una red personalizada de Docker con la que trabajar.

Después de crear la red, explorará diferentes formas de inspeccionar su configuración. Esto incluye utilizar la salida JSON predeterminada, aplicar una plantilla de Go (Go template) para una salida personalizada y utilizar la opción detallada (verbose option) para obtener más detalles extensos. Finalmente, aprenderá cómo inspeccionar múltiples redes simultáneamente.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/ls -.-> lab-555176{{"Cómo usar el comando docker network inspect para ver detalles de la red"}} docker/inspect -.-> lab-555176{{"Cómo usar el comando docker network inspect para ver detalles de la red"}} docker/create -.-> lab-555176{{"Cómo usar el comando docker network inspect para ver detalles de la red"}} docker/network -.-> lab-555176{{"Cómo usar el comando docker network inspect para ver detalles de la red"}} end

Crear una red personalizada de Docker

En este paso, aprenderá cómo crear una red personalizada en Docker. Por defecto, Docker proporciona varios controladores de red (network drivers), pero crear una red personalizada le permite aislar sus contenedores y controlar cómo se comunican entre sí.

Antes de crear una red, veamos las redes existentes en su sistema utilizando el comando docker network ls.

docker network ls

Debería ver algunas redes predeterminadas como bridge, host y none.

Ahora, creemos una nueva red personalizada llamada my-custom-network utilizando el controlador bridge. El controlador bridge es el controlador de red predeterminado y es adecuado para la mayoría de los casos de uso.

docker network create my-custom-network

Después de ejecutar el comando, Docker creará la red y mostrará su ID.

Para verificar que la red se ha creado correctamente, ejecute nuevamente el comando docker network ls.

docker network ls

Ahora debería ver my-custom-network en la lista de redes disponibles.

Inspeccionar la red personalizada utilizando el formato JSON predeterminado

En este paso, aprenderá cómo inspeccionar los detalles de una red de Docker utilizando el comando docker network inspect. Por defecto, este comando muestra la configuración de la red en formato JSON, que proporciona información exhaustiva sobre la red, incluyendo su ID, nombre, controlador (driver), subred, puerta de enlace (gateway) y contenedores conectados.

Para inspeccionar la red my-custom-network que creó en el paso anterior, utilice el siguiente comando:

docker network inspect my-custom-network

Este comando mostrará un objeto JSON detallado que representa la configuración de my-custom-network. Puede examinar esta salida para comprender las propiedades de la red.

La salida incluirá campos como:

  • Name: El nombre de la red (my-custom-network).
  • Id: El ID único de la red.
  • Driver: El controlador de red utilizado (bridge).
  • Scope: El alcance de la red (generalmente local).
  • IPAM: Información sobre la gestión de direcciones IP (IP Address Management), incluyendo la subred y la puerta de enlace.
  • Containers: Una lista de contenedores conectados a esta red (inicialmente vacía).

Comprender la salida de docker network inspect es fundamental para depurar problemas de red y entender cómo se conectan sus contenedores.

Inspeccionar la red personalizada utilizando una plantilla de Go (Go template)

En este paso, aprenderá cómo utilizar plantillas de Go con el comando docker network inspect para extraer información específica de la configuración de la red. Esto es útil cuando solo necesita ciertos detalles y no desea analizar toda la salida JSON.

La opción -f o --format le permite especificar una plantilla de Go. La plantilla utiliza la sintaxis de plantillas de Go para acceder a los campos dentro de la salida JSON.

Digamos que solo desea ver el ID y el controlador (driver) de la red. Puede utilizar la siguiente plantilla: {{.Id}} {{.Driver}}.

Ejecute el siguiente comando para inspeccionar my-custom-network y dar formato a la salida utilizando esta plantilla:

docker network inspect -f '{{.Id}} {{.Driver}}' my-custom-network

La salida será el ID de la red seguido del nombre del controlador, separados por un espacio.

También puede acceder a campos anidados. Por ejemplo, para obtener la subred de la configuración de IPAM, puede utilizar la plantilla {{.IPAM.Config}}. Dado que IPAM.Config es una lista, es posible que deba iterar sobre ella o acceder a un elemento específico si hay múltiples configuraciones. Para simplificar, supongamos que solo hay una configuración y accedamos al campo Subnet dentro del primer elemento de la lista Config: {{(index .IPAM.Config 0).Subnet}}.

Intentemos inspeccionar la red y mostrar el nombre de la red y la subred:

docker network inspect -f 'Name: {{.Name}}, Subnet: {{(index .IPAM.Config 0).Subnet}}' my-custom-network

Este comando mostrará el nombre de la red y su subred en un formato más legible.

Utilizar plantillas de Go proporciona una forma poderosa de personalizar la salida de los comandos de Docker y extraer exactamente la información que necesita.

Inspeccionar la red personalizada con salida detallada (verbose output)

En este paso, aprenderá cómo obtener información más detallada al inspeccionar una red de Docker utilizando la opción --verbose o -v. Esta opción proporciona detalles adicionales que no se incluyen en la salida predeterminada, lo cual puede ser útil para depuración avanzada y comprender el estado interno de la red.

Para inspeccionar my-custom-network con salida detallada, utilice el siguiente comando:

docker network inspect -v my-custom-network

La salida será similar a la salida JSON predeterminada, pero incluirá campos y detalles adicionales. La información adicional exacta puede variar según el controlador de red (network driver) y la versión de Docker, pero a menudo incluye detalles de nivel más bajo sobre la configuración y el estado de la red.

Por ejemplo, con el controlador bridge, la salida detallada podría incluir detalles sobre la interfaz de puente subyacente en el sistema host, incluyendo su dirección MAC y dirección IP. También podría mostrar información más detallada sobre la configuración de IPAM.

Si bien la salida predeterminada suele ser suficiente para la mayoría de los fines, la salida detallada puede ser invaluable cuando necesita profundizar en la configuración de la red o solucionar problemas complejos de redes.

Compare la salida de este comando con la salida del paso anterior para ver la información adicional proporcionada por la opción detallada.

Inspeccionar múltiples redes

En este paso, aprenderá cómo inspeccionar múltiples redes de Docker simultáneamente utilizando el comando docker network inspect. Esto puede ser útil cuando necesita comparar las configuraciones de diferentes redes o obtener información sobre varias redes a la vez.

Para inspeccionar múltiples redes, simplemente proporcione los nombres o IDs de las redes como argumentos al comando docker network inspect, separados por espacios.

Vamos a inspeccionar la red my-custom-network que creó y la red bridge predeterminada.

docker network inspect my-custom-network bridge

Este comando mostrará la configuración JSON tanto de my-custom-network como de la red bridge. La salida de cada red será un objeto JSON separado.

También puede combinar la inspección de múltiples redes con las opciones de formato que aprendió en los pasos anteriores. Por ejemplo, para obtener el nombre y el controlador (driver) de ambas redes utilizando una plantilla de Go (Go template):

docker network inspect -f 'Name: {{.Name}}, Driver: {{.Driver}}' my-custom-network bridge

Esto mostrará el nombre y el controlador de cada red especificada en una línea separada.

Inspeccionar múltiples redes a la vez puede agilizar significativamente su flujo de trabajo al administrar varias redes en su entorno de Docker.

Resumen

En este laboratorio, aprendiste cómo crear una red personalizada de Docker utilizando el comando docker network create y cómo verificar su creación con docker network ls. Luego, exploraste el comando docker network inspect para ver configuraciones detalladas de la red.

Practicaste la inspección de una red utilizando la salida JSON predeterminada, aplicaste una plantilla de Go (Go template) para una salida personalizada y obtuviste información detallada (verbose information). Finalmente, aprendiste cómo inspeccionar múltiples redes simultáneamente.