Introdução
Docker é uma poderosa plataforma de contentores que permite construir, implantar e gerir aplicações num ambiente consistente e escalável. Ao trabalhar com Docker, é importante manter uma configuração de rede limpa e eficiente. Este tutorial irá guiá-lo através do processo de identificação e remoção de redes Docker não utilizadas, ajudando-o a otimizar o seu ambiente Docker.
Compreendendo as Redes Docker
As redes Docker são um conceito fundamental no ecossistema Docker. Elas fornecem uma forma de conectar contêineres e permitir a comunicação entre eles. Docker suporta vários drivers de rede, cada um com seu próprio conjunto de recursos e casos de uso.
O driver de rede padrão no Docker é o driver bridge, que cria uma ponte virtual na máquina hospedeira e conecta os contêineres a ela. Isso permite que os contêineres se comuniquem entre si e com o sistema hospedeiro. Outros drivers de rede incluem overlay, host e macvlan, cada um com suas próprias vantagens e casos de uso.
graph LR
A[Máquina Hospedeira] --> B[Rede Ponte Docker]
B --> C[Contêiner 1]
B --> D[Contêiner 2]
B --> E[Contêiner 3]
O driver de rede overlay é usado para redes multi-hospedeiros, permitindo que contêineres em diferentes hosts Docker se comuniquem entre si. O driver de rede host remove o isolamento de rede entre o contêiner e o host, enquanto o driver macvlan permite que os contêineres recebam um endereço MAC, fazendo com que eles apareçam como dispositivos físicos na rede.
Compreender os diferentes drivers de rede e seus casos de uso é crucial ao trabalhar com Docker, pois permite escolher a configuração de rede mais adequada para sua aplicação.
Identificando e Listando Redes Docker Não Utilizadas
Para identificar e listar redes Docker não utilizadas, pode usar os seguintes comandos do Docker CLI:
Listando Todas as Redes Docker
Para listar todas as redes Docker no seu sistema, utilize o comando docker network ls:
docker network ls
Isto irá apresentar uma tabela com as seguintes colunas:
- ID DA REDE
- NOME
- DRIVER
- ÂMBITO
Identificando Redes Docker Não Utilizadas
Para identificar redes Docker não utilizadas, utilize o comando docker network ls com a opção -f (filtro):
docker network ls -f "dangling=true"
Isto irá listar todas as redes Docker que não estão a ser utilizadas por nenhum contêiner. O filtro dangling=true garante que apenas as redes sem quaisquer contêineres conectados são exibidas.
Alternativamente, pode usar o seguinte comando para listar todas as redes que não estão a ser utilizadas por quaisquer contêineres em execução:
docker network ls --filter "scope=local" --filter "driver=bridge" --filter "name=^((?!host|none|bridge).)*$" --format "{{.ID}}\t{{.Name}}\t{{.Driver}}"
Este comando filtra a lista de redes para mostrar apenas as redes locais baseadas em bridge que não são as redes padrão host, none ou bridge.
A saída deste comando será uma tabela com as seguintes colunas:
- ID DA REDE
- NOME
- DRIVER
Utilizando estes comandos, pode facilmente identificar e listar as redes Docker não utilizadas no seu sistema, o que pode ser útil para limpar o seu ambiente Docker.
Removendo Redes Docker Não Utilizadas
Após identificar as redes Docker não utilizadas, pode removê-las usando o comando docker network rm.
Removendo uma Rede Não Utilizada Individual
Para remover uma única rede Docker não utilizada, utilize o seguinte comando:
docker network rm <nome_da_rede>
Substitua <nome_da_rede> pelo nome da rede que pretende remover.
Removendo Múltiplas Redes Não Utilizadas
Se tiver múltiplas redes Docker não utilizadas, pode removê-las numa única operação usando o comando docker network ls com a opção -q (silencioso) para obter os IDs das redes e, em seguida, passando-os para o comando docker network rm:
docker network ls -f "dangling=true" -q | xargs docker network rm
Este comando primeiro lista todas as redes Docker não utilizadas (pendentes) usando o comando docker network ls com o filtro -f "dangling=true". A opção -q é usada para exibir apenas os IDs das redes. Esses IDs são então passados para o comando docker network rm usando a ferramenta xargs, que remove todas as redes listadas.
Removendo Todas as Redes Não Utilizadas
Se pretender remover todas as redes Docker não utilizadas no seu sistema, utilize o seguinte comando:
docker network prune
Este comando removerá todas as redes que não estão a ser utilizadas por quaisquer contêineres.
Utilizando estes comandos, pode facilmente remover as redes Docker não utilizadas no seu sistema, o que ajuda a manter o seu ambiente Docker limpo e organizado.
Resumo
Neste tutorial, aprendeu a gerir eficazmente as suas redes Docker, identificando e removendo redes não utilizadas. Seguindo os passos descritos, pode garantir que o seu ambiente Docker permanece organizado e eficiente, levando a um melhor desempenho e a uma menor utilização de recursos. Dominar a gestão de redes Docker é uma habilidade crucial para qualquer utilizador ou administrador de Docker.



