Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
RP
abril 10, 2025
Atualizado abril 10, 2025

Como configurar a rede no Docker?

Linux Redes Windows

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.

network-stack
Captura de tela nº 1 — Pilha de rede
  • O pacote de dados chega à interface após ser processado pelo driver;
  • Em seguida, passa pelo mecanismo de roteamento, que decide se o pacote deve ser redirecionado ou entregue ao aplicativo;
  • Durante esse processo, é aplicado o filtro de pacotes, que pode modificar e bloquear o tráfego;
  • Por fim, o tráfego sai da interface de rede da máquina.

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:

network-stack-v
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:

  • bridge: cria uma rede interna com roteamento e comutador próprios;
  • host: usa diretamente o namespace de rede do host, sem isolação;
  • none: desativa a rede do contêiner;
  • overlay: conecta vários daemons do Docker em uma rede unificada;
  • macvlan: cria subinterfaces vinculadas ao host para comunicação direta com a rede externa;
  • ipvlan: semelhante ao macvlan, mas com base em endereços IP.

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

docker network
docker-info
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.

macvlan
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.

create-macvlan
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"
test-macvlan
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
create-bridge-1
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
test-bridge
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
none
Captura de tela nº 9 — Rede isolada

host: usa rede do sistema hospedeiro:

sudo docker run -it --network host alpine sh
host
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.

1 (4)
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.

Avaliação:
4 fora de 5
Аverage rating : 4.7
Avaliado por: 3
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.