Listar redes para identificar as não utilizadas
Nesta etapa, aprenderemos como listar as redes Docker e identificar aquelas que não estão sendo usadas por nenhum contêiner no momento. Isso é útil para limpar seu ambiente Docker e liberar recursos.
Já usamos o comando docker network ls na etapa anterior para listar todas as redes. Vamos executá-lo novamente para ver o estado atual.
docker network ls
A saída mostra o ID da rede, o nome, o driver e o escopo para cada rede. Observe que as redes my-network-1 e my-network-2 que criamos estão listadas.
Para identificar redes não utilizadas, podemos usar o comando docker network prune com a flag --dry-run. Essa flag nos permite ver quais redes seriam removidas sem realmente removê-las.
docker network prune --dry-run
A saída deste comando listará as redes que não estão conectadas a nenhum contêiner em execução e seriam podadas (pruned). Como não anexamos nenhum contêiner a my-network-1 ou my-network-2, elas devem aparecer na saída da execução a seco (dry run).
Vamos executar um contêiner simples anexado a my-network-1 para ver como isso afeta a saída de docker network prune --dry-run. Usaremos a imagem hello-world, que é muito pequena. Primeiro, puxe a imagem:
docker pull hello-world
Agora, execute um contêiner usando esta imagem e anexe-o a my-network-1. A flag -d executa o contêiner em modo detached (em segundo plano).
docker run -d --network my-network-1 hello-world
Você verá um ID de contêiner como saída.
Agora, vamos executar o comando docker network prune --dry-run novamente.
docker network prune --dry-run
Desta vez, my-network-1 não deve aparecer na lista de redes a serem podadas porque está sendo usado pelo contêiner hello-world em execução. my-network-2, que não está sendo usado, ainda deve ser listado.
Para parar e remover o contêiner hello-world, primeiro encontre seu ID usando docker ps.
docker ps
Em seguida, pare o contêiner usando docker stop <container_id> e remova-o usando docker rm <container_id>. Substitua <container_id> pelo ID real da saída de docker ps.
docker stop <container_id>
docker rm <container_id>
Agora, se você executar docker network prune --dry-run novamente, tanto my-network-1 quanto my-network-2 devem ser listados como redes a serem podadas, pois não estão mais em uso.