Introdução
Neste laboratório, você aprenderá como usar efetivamente o comando docker network ls para listar e filtrar redes Docker. Você começará listando todas as redes disponíveis e, em seguida, explorará como exibir os IDs completos das redes usando a opção --no-trunc.
Além disso, você praticará a filtragem de redes com base em vários critérios, como driver, nome, escopo e tipo. Por fim, você aprenderá como formatar a saída do comando docker network ls usando um template para uma exibição personalizada. Este laboratório irá equipá-lo com as habilidades essenciais para gerenciar e inspecionar redes Docker usando a linha de comando.
Listar todas as redes Docker
Nesta etapa, você aprenderá como listar todas as redes Docker disponíveis em seu sistema. As redes Docker são essenciais para que os containers se comuniquem entre si e com o mundo exterior. Por padrão, o Docker cria três redes: bridge, host e none.
Para listar todas as redes Docker, você usa o comando docker network ls. Este comando fornece uma lista de redes, incluindo seu ID, nome, driver e escopo.
Vamos executar o comando para ver as redes disponíveis.
docker network ls
Você deve ver uma saída semelhante a esta:
NETWORK ID NAME DRIVER SCOPE
b432a7b0f123 bridge bridge local
f567c8d1e234 host host local
a987b6c5d4e3 none null local
A saída mostra as redes padrão. O NETWORK ID é um identificador único para a rede. O NAME é o nome da rede. O DRIVER é o driver de rede usado pela rede (por exemplo, bridge, host, null). O SCOPE indica onde a rede está disponível (por exemplo, local).
Listar redes sem truncar o ID
Na etapa anterior, você listou as redes Docker e notou que o NETWORK ID é truncado. Este é o comportamento padrão para manter a saída concisa. No entanto, às vezes você precisa do ID completo da rede, por exemplo, ao referenciar uma rede específica em outros comandos Docker.
Para exibir o ID completo da rede, você pode usar a opção --no-trunc com o comando docker network ls.
Vamos tentar este comando para ver os IDs completos da rede.
docker network ls --no-trunc
A saída agora mostrará os IDs completos da rede:
NETWORK ID NAME DRIVER SCOPE
b432a7b0f1234567890abcdef1234567890abcdef1234567890abcdef12345678 bridge bridge local
f567c8d1e234567890abcdef1234567890abcdef1234567890abcdef12345678 host host local
a987b6c5d4e3210fedcba9876543210fedcba9876543210fedcba9876543210fed none null local
Como você pode ver, a coluna NETWORK ID agora exibe os IDs completos, não truncados. Isso é útil quando você precisa copiar e colar o ID completo para operações futuras.
Filtrar redes por driver
Nesta etapa, você aprenderá como filtrar a lista de redes Docker com base em seu driver. Isso é útil quando você deseja ver apenas redes que usam um driver específico, como bridge ou host.
Você pode usar a opção --filter com o comando docker network ls para filtrar a saída. A sintaxe do filtro é chave=valor. Para filtrar por driver, você usa a chave driver.
Vamos filtrar as redes para mostrar apenas aquelas que usam o driver bridge.
docker network ls --filter driver=bridge
A saída agora mostrará apenas as redes com o driver bridge:
NETWORK ID NAME DRIVER SCOPE
b432a7b0f123 bridge bridge local
Agora, vamos filtrar as redes para mostrar apenas aquelas que usam o driver host.
docker network ls --filter driver=host
A saída agora mostrará apenas as redes com o driver host:
NETWORK ID NAME DRIVER SCOPE
f567c8d1e234 host host local
Você pode usar essa capacidade de filtragem para encontrar rapidamente redes com base em sua tecnologia subjacente.
Filtrar redes por nome
Nesta etapa, você aprenderá como filtrar a lista de redes Docker com base em seu nome. Isso é útil quando você está procurando uma rede específica pelo seu nome.
Semelhante à filtragem por driver, você usa a opção --filter com o comando docker network ls. Para filtrar por nome, você usa a chave name.
Vamos filtrar as redes para mostrar apenas a rede chamada bridge.
docker network ls --filter name=bridge
A saída agora mostrará apenas a rede chamada bridge:
NETWORK ID NAME DRIVER SCOPE
b432a7b0f123 bridge bridge local
Agora, vamos filtrar as redes para mostrar apenas a rede chamada host.
docker network ls --filter name=host
A saída agora mostrará apenas a rede chamada host:
NETWORK ID NAME DRIVER SCOPE
f567c8d1e234 host host local
Você pode usar este filtro para localizar rapidamente uma rede quando souber seu nome.
Filtrar redes por escopo e tipo
Nesta etapa, você aprenderá como filtrar a lista de redes Docker com base em seu escopo e tipo. O scope (escopo) indica onde a rede está disponível (por exemplo, local ou swarm), e o type (tipo) se refere ao driver da rede. Embora o type seja frequentemente o mesmo que o driver, usar type como uma chave de filtro também é possível.
Você pode usar a opção --filter com o comando docker network ls para filtrar a saída. Para filtrar por escopo, você usa a chave scope. Para filtrar por tipo, você usa a chave type.
Vamos filtrar as redes para mostrar apenas aquelas com um escopo local.
docker network ls --filter scope=local
A saída mostrará todas as redes com o escopo local:
NETWORK ID NAME DRIVER SCOPE
b432a7b0f123 bridge bridge local
f567c8d1e234 host host local
a987b6c5d4e3 none null local
Agora, vamos filtrar as redes para mostrar apenas aquelas com um tipo bridge.
docker network ls --filter type=bridge
A saída mostrará as redes com o tipo bridge (que é o mesmo que o driver bridge neste caso):
NETWORK ID NAME DRIVER SCOPE
b432a7b0f123 bridge bridge local
Você pode combinar filtros usando a opção --filter várias vezes. Por exemplo, para filtrar por redes com escopo local e driver bridge:
docker network ls --filter scope=local --filter driver=bridge
Isso lhe dará o mesmo resultado que filtrar por type=bridge neste ambiente específico, mas demonstra como combinar filtros.
Formatar a saída da rede usando um template
Nesta etapa, você aprenderá como formatar a saída do comando docker network ls usando um template Go. Este é um recurso poderoso que permite personalizar a saída para exibir apenas as informações que você precisa e em um formato específico.
A opção --format permite que você especifique um template. O template usa a sintaxe do pacote text/template do Go. Você pode acessar vários campos do objeto de rede, como .ID, .Name, .Driver e .Scope.
Vamos formatar a saída para mostrar apenas o nome e o driver da rede, separados por dois pontos.
docker network ls --format "{{.Name}}: {{.Driver}}"
A saída agora será formatada de acordo com o template:
bridge: bridge
host: host
none: null
Você também pode incluir cabeçalhos em sua saída formatada.
docker network ls --format "Network Name\tDriver\n{{.Name}}\t{{.Driver}}"
A saída agora incluirá cabeçalhos:
Network Name Driver
bridge bridge
host host
none null
O \t cria um espaço de tabulação, e \n cria uma nova linha. Essa capacidade de formatação é muito útil para scripting e geração de relatórios.
Resumo
Neste laboratório, você aprendeu como usar o comando docker network ls para listar redes Docker. Você começou listando todas as redes disponíveis, observando as redes padrão e suas informações básicas (ID, nome, driver, escopo). Em seguida, você explorou como exibir o ID completo da rede usando a opção --no-trunc, que é útil para referenciar redes específicas.
Além disso, você praticou a filtragem de listas de redes com base em vários critérios. Você aprendeu a filtrar por driver usando a opção --filter driver=<driver_name>, por nome da rede usando --filter name=<network_name>, e por escopo e tipo usando --filter scope=<scope> e --filter type=<type>. Por fim, você descobriu como formatar a saída do comando docker network ls usando a opção --format e templates Go, permitindo que você personalize as informações exibidas.



