Listar redes para identificar las no utilizadas
En este paso, aprenderemos cómo listar las redes Docker e identificar aquellas que actualmente no están siendo utilizadas por ningún contenedor. Esto es útil para limpiar tu entorno Docker y liberar recursos.
Ya utilizamos el comando docker network ls
en el paso anterior para listar todas las redes. Vamos a ejecutarlo de nuevo para ver el estado actual.
docker network ls
La salida muestra el ID de la red, el nombre, el controlador (driver) y el alcance (scope) de cada red. Observa que las redes my-network-1
y my-network-2
que creamos se encuentran en la lista.
Para identificar las redes no utilizadas, podemos usar el comando docker network prune
con la bandera --dry-run
. Esta bandera nos permite ver qué redes se eliminarían sin eliminarlas realmente.
docker network prune --dry-run
La salida de este comando listará las redes que no están conectadas a ningún contenedor en ejecución y que se eliminarán. Dado que no hemos conectado ningún contenedor a my-network-1
o my-network-2
, deben aparecer en la salida de la ejecución simulada (dry run).
Vamos a ejecutar un contenedor simple conectado a my-network-1
para ver cómo afecta a la salida de docker network prune --dry-run
. Utilizaremos la imagen hello-world
, que es muy pequeña. Primero, descarguemos la imagen:
docker pull hello-world
Ahora, ejecutemos un contenedor utilizando esta imagen y conectémoslo a my-network-1
. La bandera -d
ejecuta el contenedor en modo desatendido (en segundo plano).
docker run -d --network my-network-1 hello-world
Verás un ID de contenedor como salida.
Ahora, ejecutemos de nuevo el comando docker network prune --dry-run
.
docker network prune --dry-run
Esta vez, my-network-1
no debe aparecer en la lista de redes a eliminar porque está siendo utilizada por el contenedor hello-world
en ejecución. my-network-2
, que no está siendo utilizada, debe seguir apareciendo en la lista.
Para detener y eliminar el contenedor hello-world
, primero encuentra su ID utilizando docker ps
.
docker ps
Luego, detén el contenedor utilizando docker stop <container_id>
y elimínalo utilizando docker rm <container_id>
. Reemplaza <container_id>
con el ID real de la salida de docker ps
.
docker stop <container_id>
docker rm <container_id>
Ahora, si ejecutas docker network prune --dry-run
de nuevo, tanto my-network-1
como my-network-2
deben aparecer en la lista de redes a eliminar, ya que ya no están en uso.