Cómo usar el comando docker network ls para listar y filtrar redes

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 de manera efectiva el comando docker network ls para listar y filtrar redes de Docker. Comenzará listando todas las redes disponibles y luego explorará cómo mostrar los ID completos de las redes utilizando la opción --no-trunc.

Además, practicará filtrar redes basadas en varios criterios, como el controlador (driver), el nombre, el alcance (scope) y el tipo. Finalmente, aprenderá cómo formatear la salida del comando docker network ls utilizando una plantilla (template) para una visualización personalizada. Este laboratorio le proporcionará las habilidades esenciales para administrar e inspeccionar redes de Docker utilizando la línea de comandos.


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/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/ls -.-> lab-555177{{"Cómo usar el comando docker network ls para listar y filtrar redes"}} docker/network -.-> lab-555177{{"Cómo usar el comando docker network ls para listar y filtrar redes"}} end

Listar todas las redes de Docker

En este paso, aprenderá cómo listar todas las redes de Docker disponibles en su sistema. Las redes de Docker son esenciales para que los contenedores se comuniquen entre sí y con el mundo exterior. Por defecto, Docker crea tres redes: bridge, host y none.

Para listar todas las redes de Docker, se utiliza el comando docker network ls. Este comando proporciona una lista de redes, incluyendo su ID, nombre, controlador (driver) y alcance (scope).

Ejecutemos el comando para ver las redes disponibles.

docker network ls

Debería ver una salida similar a esta:

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local
f567c8d1e234   host      host      local
a987b6c5d4e3   none      null      local

La salida muestra las redes predeterminadas. El NETWORK ID es un identificador único para la red. El NAME es el nombre de la red. El DRIVER es el controlador de red utilizado por la red (por ejemplo, bridge, host, null). El SCOPE indica dónde está disponible la red (por ejemplo, local).

Listar redes sin truncar el ID

En el paso anterior, listó las redes de Docker y notó que el NETWORK ID está truncado. Este es el comportamiento predeterminado para mantener la salida concisa. Sin embargo, a veces se necesita el ID completo de la red, por ejemplo, cuando se hace referencia a una red específica en otros comandos de Docker.

Para mostrar el ID completo de la red, puede utilizar la opción --no-trunc con el comando docker network ls.

Intentemos este comando para ver los ID completos de las redes.

docker network ls --no-trunc

La salida ahora mostrará los ID completos de las redes:

NETWORK ID                                                       NAME      DRIVER    SCOPE
b432a7b0f1234567890abcdef1234567890abcdef1234567890abcdef12345678 bridge    bridge    local
f567c8d1e234567890abcdef1234567890abcdef1234567890abcdef12345678 host      host      local
a987b6c5d4e3210fedcba9876543210fedcba9876543210fedcba9876543210fed none      null      local

Como puede ver, la columna NETWORK ID ahora muestra los ID completos, sin truncar. Esto es útil cuando necesita copiar y pegar el ID completo para realizar operaciones adicionales.

Filtrar redes por controlador (driver)

En este paso, aprenderá cómo filtrar la lista de redes de Docker en función de su controlador (driver). Esto es útil cuando desea ver solo las redes que utilizan un controlador específico, como bridge o host.

Puede utilizar la opción --filter con el comando docker network ls para filtrar la salida. La sintaxis del filtro es clave=valor. Para filtrar por controlador, se utiliza la clave driver.

Filtrémos las redes para mostrar solo aquellas que utilizan el controlador bridge.

docker network ls --filter driver=bridge

La salida ahora solo mostrará las redes con el controlador bridge:

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local

Ahora, filtrémos las redes para mostrar solo aquellas que utilizan el controlador host.

docker network ls --filter driver=host

La salida ahora solo mostrará las redes con el controlador host:

NETWORK ID     NAME      DRIVER    SCOPE
f567c8d1e234   host      host      local

Puede utilizar esta capacidad de filtrado para encontrar rápidamente redes en función de su tecnología subyacente.

Filtrar redes por nombre

En este paso, aprenderá cómo filtrar la lista de redes de Docker en función de su nombre. Esto es útil cuando está buscando una red específica por su nombre.

Similar al filtrado por controlador (driver), se utiliza la opción --filter con el comando docker network ls. Para filtrar por nombre, se utiliza la clave name.

Filtrémos las redes para mostrar solo la red llamada bridge.

docker network ls --filter name=bridge

La salida ahora solo mostrará la red llamada bridge:

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local

Ahora, filtrémos las redes para mostrar solo la red llamada host.

docker network ls --filter name=host

La salida ahora solo mostrará la red llamada host:

NETWORK ID     NAME      DRIVER    SCOPE
f567c8d1e234   host      host      local

Puede utilizar este filtro para localizar rápidamente una red cuando conoce su nombre.

Filtrar redes por alcance (scope) y tipo

En este paso, aprenderá cómo filtrar la lista de redes de Docker en función de su alcance (scope) y tipo. El scope indica dónde está disponible la red (por ejemplo, local o swarm), y el type se refiere al controlador de red (network driver). Si bien type a menudo es lo mismo que driver, también es posible utilizar type como clave de filtrado.

Puede utilizar la opción --filter con el comando docker network ls para filtrar la salida. Para filtrar por alcance (scope), se utiliza la clave scope. Para filtrar por tipo, se utiliza la clave type.

Filtrémos las redes para mostrar solo aquellas con un alcance (scope) local.

docker network ls --filter scope=local

La salida mostrará todas las redes con alcance (scope) local:

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local
f567c8d1e234   host      host      local
a987b6c5d4e3   none      null      local

Ahora, filtrémos las redes para mostrar solo aquellas con un tipo bridge.

docker network ls --filter type=bridge

La salida mostrará las redes con el tipo bridge (que en este caso es el mismo que el controlador bridge):

NETWORK ID     NAME      DRIVER    SCOPE
b432a7b0f123   bridge    bridge    local

Puede combinar filtros utilizando la opción --filter varias veces. Por ejemplo, para filtrar las redes con alcance (scope) local y controlador bridge:

docker network ls --filter scope=local --filter driver=bridge

Esto le dará el mismo resultado que filtrar por type=bridge en este entorno específico, pero demuestra cómo combinar filtros.

Formatear la salida de redes utilizando una plantilla (template)

En este paso, aprenderá cómo formatear la salida del comando docker network ls utilizando una plantilla (template) de Go. Esta es una función poderosa que le permite personalizar la salida para mostrar solo la información que necesita y en un formato específico.

La opción --format le permite especificar una plantilla. La plantilla utiliza la sintaxis del paquete text/template de Go. Puede acceder a varios campos del objeto de red, como .ID, .Name, .Driver y .Scope.

Formateemos la salida para mostrar solo el nombre de la red y el controlador (driver), separados por dos puntos.

docker network ls --format "{{.Name}}: {{.Driver}}"

La salida ahora se formateará de acuerdo con la plantilla:

bridge: bridge
host: host
none: null

También puede incluir encabezados en su salida formateada.

docker network ls --format "Network Name\tDriver\n{{.Name}}\t{{.Driver}}"

La salida ahora incluirá encabezados:

Network Name    Driver
bridge          bridge
host            host
none            null

El \t crea un espacio de tabulación y \n crea una nueva línea. Esta capacidad de formato es muy útil para la escritura de scripts y la generación de informes.

Resumen

En este laboratorio, aprendiste cómo utilizar el comando docker network ls para listar las redes de Docker. Comenzaste listando todas las redes disponibles, observando las redes predeterminadas y su información básica (ID, nombre, controlador [driver], alcance [scope]). Luego, exploraste cómo mostrar el ID completo de la red utilizando la opción --no-trunc, que es útil para hacer referencia a redes específicas.

Además, practicaste filtrar las listas de redes basadas en varios criterios. Aprendiste a filtrar por controlador (driver) utilizando la opción --filter driver=<driver_name>, por nombre de red utilizando --filter name=<network_name> y por alcance (scope) y tipo utilizando --filter scope=<scope> y --filter type=<type>. Finalmente, descubriste cómo formatear la salida del comando docker network ls utilizando la opción --format y plantillas (templates) de Go, lo que te permite personalizar la información mostrada.