Pular para o conteúdo
Tecnologia

Networking em Docker pode parecer mágica. Entenda como containers se comunicam, isolamento de redes e configurações avançadas.

Conceitos Principais

Bridge Network

Default para containers. Network privada no host. Containers se comunicam por IP ou nome (com --link). Isolado de outras networks.

Host Network

Container usa network stack do host diretamente. Sem isolamento. Performance máxima. Útil para apps que precisam de todas as portas.

DNS Interno

Docker resolve nomes de containers para IPs. Em user-defined networks, usa container name. Em default bridge, precisa --link.

Port Mapping

-p host:container expõe porta. Docker faz NAT. Múltiplos containers podem usar mesma porta interna (3000), diferentes portas externas.

Passo a Passo

  1. Crie Custom Network: docker network create minha-app-net. Liste: docker network ls. Inspecione: docker network inspect minha-app-net. User-defined > default bridge.
  2. Conecte Containers: docker run --network minha-app-net --name api app-image. docker run --network minha-app-net --name db postgres. API acessa db via hostname "db".
  3. Teste DNS: Entre no container: docker exec -it api sh. Ping outro container: ping db. Resolve automaticamente. DNS só funciona em user-defined networks.
  4. Port Mapping: docker run -p 8080:3000 --network minha-app-net api. Acesso externo: localhost:8080. Interno entre containers: api:3000.
  5. Network Isolation: Crie networks separadas para frontend/backend. Frontend network: web, api. Backend network: api, db. API em ambas, db isolada do web.

Boas Praticas

Recomendacoes

• Sempre use user-defined networks (não default bridge)

• Nomeie containers para DNS funcionar

• Use network aliases para load balancing

• Isole databases em networks privadas

Erros Comuns

Evite estes erros

• Usar default bridge e --link (deprecated)

• Expor todas as portas desnecessariamente

• Não isolar serviços sensíveis

Checklist

  • User-defined network criada
  • Containers nomeados corretamente
  • DNS interno testado
  • Portas mapeadas apenas necessárias
  • Isolamento de segurança configurado