Cómo eliminar una red de Docker no utilizada

DockerBeginner
Practicar Ahora

Introducción

Docker es una potente plataforma de contenedores (containerization) que te permite construir, desplegar y gestionar aplicaciones en un entorno coherente y escalable. Mientras trabajas con Docker, es importante mantener una configuración de red limpia y eficiente. Este tutorial te guiará a través del proceso de identificación y eliminación de redes de Docker no utilizadas, ayudándote a optimizar tu entorno de Docker.

Comprender las redes de Docker

Las redes de Docker son un concepto fundamental en el ecosistema de Docker. Proporcionan una forma de conectar contenedores y permitir la comunicación entre ellos. Docker admite varios controladores de red (network drivers), cada uno con su propio conjunto de características y casos de uso.

El controlador de red predeterminado en Docker es el controlador bridge, que crea un puente virtual en la máquina host y conecta los contenedores a él. Esto permite que los contenedores se comuniquen entre sí y con el sistema host. Otros controladores de red incluyen overlay, host y macvlan, cada uno con sus propias ventajas y casos de uso.

graph LR A[Host Machine] --> B[Docker Bridge Network] B --> C[Container 1] B --> D[Container 2] B --> E[Container 3]

El controlador de red overlay se utiliza para la red de múltiples hosts (multi - host networking), lo que permite que los contenedores en diferentes hosts de Docker se comuniquen entre sí. El controlador de red host elimina el aislamiento de red entre el contenedor y el host, mientras que el controlador macvlan permite asignar una dirección MAC a los contenedores, lo que los hace parecer dispositivos físicos en la red.

Comprender los diferentes controladores de red y sus casos de uso es crucial cuando se trabaja con Docker, ya que te permite elegir la configuración de red más adecuada para tu aplicación.

Identificar y enumerar las redes de Docker no utilizadas

Para identificar y enumerar las redes de Docker no utilizadas, puedes utilizar los siguientes comandos de la interfaz de línea de comandos (CLI) de Docker:

Enumerar todas las redes de Docker

Para enumerar todas las redes de Docker en tu sistema, puedes utilizar el comando docker network ls:

docker network ls

Esto mostrará una tabla con las siguientes columnas:

  • NETWORK ID
  • NAME
  • DRIVER
  • SCOPE

Identificar las redes de Docker no utilizadas

Para identificar las redes de Docker no utilizadas, puedes utilizar el comando docker network ls con la opción -f (filtrar):

docker network ls -f "dangling=true"

Esto enumerará todas las redes de Docker que no están siendo utilizadas por ningún contenedor. El filtro dangling=true asegura que solo se muestren las redes sin ningún contenedor conectado.

Como alternativa, puedes utilizar el siguiente comando para enumerar todas las redes que no están siendo utilizadas por ningún contenedor en ejecución:

docker network ls --filter "scope=local" --filter "driver=bridge" --filter "name=^((?!host|none|bridge).)*$" --format "{{.ID}}\t{{.Name}}\t{{.Driver}}"

Este comando filtra la lista de redes para mostrar solo las redes locales basadas en puente (bridge) que no son las redes predeterminadas host, none o bridge.

La salida de este comando será una tabla con las siguientes columnas:

  • NETWORK ID
  • NAME
  • DRIVER

Al utilizar estos comandos, puedes identificar y enumerar fácilmente las redes de Docker no utilizadas en tu sistema, lo cual puede ser útil para limpiar tu entorno de Docker.

Eliminar las redes de Docker no utilizadas

Después de identificar las redes de Docker no utilizadas, puedes eliminarlas utilizando el comando docker network rm.

Eliminar una única red no utilizada

Para eliminar una única red de Docker no utilizada, puedes utilizar el siguiente comando:

docker network rm <network_name>

Reemplaza <network_name> con el nombre de la red que deseas eliminar.

Eliminar múltiples redes no utilizadas

Si tienes múltiples redes de Docker no utilizadas, puedes eliminarlas en un solo comando utilizando el comando docker network ls con la opción -q (quiet) para obtener los IDs de las redes y luego pasarlos al comando docker network rm:

docker network ls -f "dangling=true" -q | xargs docker network rm

Este comando primero enumera todas las redes de Docker no utilizadas (dangling) utilizando el comando docker network ls con el filtro -f "dangling=true". La opción -q se utiliza para mostrar solo los IDs de las redes. Estos IDs se pasan luego al comando docker network rm utilizando la utilidad xargs, que elimina todas las redes enumeradas.

Eliminar todas las redes no utilizadas

Si deseas eliminar todas las redes de Docker no utilizadas en tu sistema, puedes utilizar el siguiente comando:

docker network prune

Este comando eliminará todas las redes que no estén siendo utilizadas por ningún contenedor.

Al utilizar estos comandos, puedes eliminar fácilmente las redes de Docker no utilizadas en tu sistema, lo que puede ayudar a mantener tu entorno de Docker limpio y organizado.

Resumen

En este tutorial, has aprendido cómo administrar eficazmente tus redes de Docker identificando y eliminando las redes no utilizadas. Siguiendo los pasos descritos, puedes asegurarte de que tu entorno de Docker permanezca organizado y eficiente, lo que se traduce en un mejor rendimiento y un menor consumo de recursos. Dominar la administración de redes de Docker es una habilidad crucial para cualquier usuario o administrador de Docker.