2.1 Comandos básicos do docker network
Redes no Docker permitem que os containers interajam entre si e com redes externas. Os comandos docker network
oferecem opções flexíveis para criar, configurar e gerenciar redes, garantindo isolamento e controle sobre a interação de rede dos containers. Nesta aula, vamos ver em detalhes os comandos docker network
e como usá-los para gerenciar redes.
Comandos básicos do docker network
:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
Criação de rede: comando docker network create
O comando docker network create
é usado para criar novas redes. Você pode criar redes com diferentes drivers, como bridge
, host
, overlay
e macvlan
.
Exemplo de criação de rede com o driver bridge
docker network create --driver bridge my_bridge_network
Exemplo de criação de rede com o driver overlay
docker network create --driver overlay my_overlay_network
Exemplo de criação de rede com o driver macvlan
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 Comandos para trabalhar com redes
1. Visualizar redes disponíveis: comando docker network ls
O comando docker network ls
exibe uma lista de todas as redes criadas no Docker.
docker network ls
A saída do comando será mais ou menos assim:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. Ver informações sobre a rede: comando docker network inspect
O comando docker network inspect
permite obter informações detalhadas sobre uma rede específica, incluindo containers conectados, configurações de sub-rede e gateway.
Exemplo de uso:
docker network inspect my_bridge_network
A saída do comando terá informações da rede em formato JSON:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. Conectar um container à rede: comando docker network connect
O comando docker network connect
é usado para conectar um container já em execução a uma rede existente.
Exemplo de uso:
docker network connect my_bridge_network my_container
4. Desconectar um container da rede: comando docker network disconnect
O comando docker network disconnect
é usado para desconectar um container de uma rede.
Exemplo de uso:
docker network disconnect my_bridge_network my_container
5. Remover uma rede: comando docker network rm
O comando docker network rm
é usado para deletar uma rede. Lembre-se de que a rede só pode ser excluída após desconectar todos os containers conectados a ela.
Exemplo de uso:
docker network rm my_bridge_network
2.3 Exemplos de comandos docker network
Exemplos de uso dos comandos docker network
Exemplo 1: Criando e usando uma rede bridge
Criando uma rede:
docker network create --driver bridge my_bridge_network
Iniciando containers e conectando-os à rede:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Verificando a rede:
docker network inspect my_bridge_network
O output do comando docker network inspect
terá informações detalhadas sobre a rede em formato JSON. Para deixar esse output mais legível, você pode usar a ferramenta jq
:
docker network inspect my_bridge_network | jq
Isso é útil para filtrar e visualizar de forma estruturada os dados sobre a rede, como os containers conectados, seus endereços IP e configurações de sub-rede.
Exemplo 2: Conectando e desconectando containers
Iniciando um container:
docker run -d --name my_container nginx
Conectando o container à rede:
docker network connect my_bridge_network my_container
Desconectando o container da rede:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION