10.04.2025

Como configurar a rede no Docker?

Uma das tecnologias mais revolucionárias foi a virtualização/containerização, que rompeu com o conceito tradicional de "uma máquina - um serviço". Se antes as empresas alugavam servidores inteiros para rodar suas aplicações, hoje é possível gerenciar espaços virtuais isolados, onde cada serviço possui seu próprio sistema de arquivos, processos e rede.

Muitos projetos modernos já são baseados nesse conceito, em que sistemas inteiros funcionam em um único servidor. Para isso, é essencial entender como funciona o sistema de rede nas plataformas de virtualização. Neste material, vamos abordar a implementação prática de uma infraestrutura de rede para contêineres.

Algoritmo da rede no sistema operacional

Para entender como os contêineres se comunicam, é preciso conhecer o subsistema de rede do sistema operacional, composto por interfaces, arquivos de configuração, netfilter e tabelas de roteamento.

Captura de tela nº 1 — Pilha de rede

Com esses componentes, é possível montar uma infraestrutura virtual de rede, mas ainda falta um "switch" virtual para organizar o ambiente. Para isso, utilizamos dispositivos de rede virtuais.

Agora, o esquema da pilha de rede com redes de contêineres é assim:

Captura de tela nº 2 — Pilha de rede com contêineres

No contexto dos contêineres, cada um possui seu próprio namespace, com interfaces, regras de netfilter e tabelas de roteamento. No entanto, esses ambientes não conseguem se comunicar entre si diretamente.

Para habilitar a comunicação, usamos pares de interfaces virtuais veth, que permitem copiar o tráfego entre diferentes namespaces. Para concluir, conectamos essas interfaces a uma ponte (bridge), que atua como um switch virtual de camada 3, capaz de rotear pacotes entre ambientes.

Essas interfaces devem estar conectadas em ambos os lados, senão o tráfego será perdido.

Tipos de conexão de contêineres

O Docker oferece diferentes drivers para configuração de redes:

Neste artigo, vamos considerar a configuração dos métodos principais e prioritários!

docker network

Captura de tela nº 3 — Docker info

O comando de ajuda fornece informações básicas sobre opções de conexão de redes e contêineres.

Bridge ou MacVlan

Vamos considerar uma tarefa operacional, onde temos um conjunto de contêineres representando um sistema de informação. Nesses casos, é recomendável manter a gestão simples e a performance alta.

Captura de tela nº 4 — Configuração da rede MacVlan

Vamos configurar MacVlan ou bridge, permitindo que o contêiner se comunique pela interface de rede do host com configurações próprias.

Captura de tela nº 5 — Criação da rede MacVlan

sudo docker network create -d macvlan \
--subnet=192.168.58.0/24 \
--gateway=192.168.58.1 \
-o parent=eth0 macvlan_network

Inicie um contêiner nessa rede:

sudo docker run --network macvlan_network --ip 192.168.58.200 python /bin/bash -c 'while true; do sleep 1000; done'

Verifique a conectividade:

sudo docker exec -it boring_galois /bin/bash -c "ping -c 4 192.168.58.1 && ping -c 4 8.8.8.8"

Captura de tela nº 6 — Teste da rede MacVlan

Após o teste, você pode segmentar a rede para a nova infraestrutura.

Conexão via NAT/LAN com bridge

Também é possível usar conexões alternativas com segmentação mais restrita.

sudo docker network create -d bridge --subnet=192.168.2.0/24 --gateway=192.168.2.1 gg

Captura de tela nº 7 — Criação da rede bridge

Conecte o contêiner:

sudo docker run -d --network gg debian bash -c 'while true; do sleep 1000; done'

Verifique conectividade:

ping 192.168.2.2

Captura de tela nº 8 — Teste da rede bridge

Redirecionamento de portas:

sudo docker run -d -p 80:80 --network gg debian bash -c 'while true; do sleep 1000; done'

Use este comando para inspecionar:

sudo docker network inspect

Conexões none e host none

Cria contêiner com rede desativada:

sudo docker network create -d none

Captura de tela nº 9 — Rede isolada

host: usa rede do sistema hospedeiro:

sudo docker run -it --network host alpine sh

Captura de tela nº 10 — Rede host

Isso garante acesso direto às interfaces e portas do host.

Infraestrutura com Serverspace Caso você precise de recursos adicionais, use os servidores em nuvem da Serverspace. Eles oferecem VPS isolados para ambientes virtualizados e testes de rede.

Captura de tela nº 11 — Criação do servidor

A implantação leva apenas alguns minutos. Em seguida, conecte-se e comece a configurar sua infraestrutura de rede segura, com autenticação, filtragem e controle de tráfego.