promovaweb-devops-docker-networking
Skill de Docker Networking
Domine os conceitos e a configuração de rede (networking) do Docker para comunicação entre containers, service discovery e isolamento de rede.
Propósito
Configurar e solucionar problemas em redes Docker para ambientes de desenvolvimento e produção com isolamento adequado e service discovery.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
| driver | enum | Não | bridge | bridge/overlay/host/macvlan |
| subnet | string | Não | - | CIDR de sub-rede personalizada |
| internal | boolean | Não | false | Rede apenas interna |
Drivers de Rede
| Driver | Caso de Uso | Multi-Host | Criptografia |
|---|---|---|---|
| bridge | Host único, padrão | Não | Não |
| overlay | Swarm, multi-host | Sim | Opcional |
| host | Performance máxima | Não | N/A |
| macvlan | Rede física | Não | Não |
| none | Desabilitar rede | Não | N/A |
Exemplos de Configuração
Rede Bridge Personalizada
# Criar rede com sub-rede personalizada
docker network create \
--driver bridge \
--subnet 172.28.0.0/16 \
--gateway 172.28.0.1 \
my_network
# Executar container na rede
docker run -d --name app \
--network my_network \
nginx:alpine
Networking no Docker Compose (Swarm)
services:
frontend:
image: nginx:alpine
networks:
- network_swarm_public
ports:
- "80:80"
backend:
image: node:20-alpine
networks:
- network_swarm_public
- private
expose:
- "3000"
database:
image: postgres:16-alpine
networks:
- private # Apenas interna
networks:
network_swarm_public:
external: true # Rede pública compartilhada no Swarm
private:
driver: overlay
internal: true # Sem acesso externo
Service Discovery
# Containers podem alcançar uns aos outros pelo nome do serviço
services:
app:
image: myapp
networks:
- network_swarm_public
environment:
# Use o nome do serviço como hostname
DATABASE_HOST: database
CACHE_HOST: redis
database:
image: postgres:16-alpine
networks:
- network_swarm_public
redis:
image: redis:alpine
networks:
- network_swarm_public
Rede Overlay (Swarm)
# Criar a rede pública do Swarm (Overlay)
docker network create \
--driver overlay \
--attachable \
--opt encrypted \
network_swarm_public
Mapeamento de Portas
# Mapear host:container
docker run -p 8080:80 nginx
# Vincular a uma interface específica
docker run -p 127.0.0.1:8080:80 nginx
# Porta do host aleatória
docker run -P nginx
# Porta UDP
docker run -p 53:53/udp dnsserver
Tratamento de Erros
Erros Comuns
| Erro | Causa | Solução |
|---|---|---|
network not found |
Erro de digitação ou excluída | Crie a rede |
address in use |
Conflito de porta | Altere a porta |
cannot reach |
Rede errada | Verifique a participação na rede |
DNS failed |
Serviço não está pronto | Adicione health checks |
Estratégia de Fallback
- Verifique se a rede existe:
docker network ls - Verifique a participação do container:
docker network inspect <net> - Teste o DNS:
docker exec app nslookup backend
Solução de Problemas (Troubleshooting)
Checklist de Depuração
- Rede criada?
docker network ls - Container conectado?
docker inspect <container> - DNS resolvendo?
nslookupa partir do container - Porta mapeada?
docker port <container>
Comandos de Diagnóstico
# Listar redes
docker network ls
# Inspecionar rede
docker network inspect my_network
# Testar conectividade
docker exec app ping -c 3 database
# Verificar DNS
docker exec app nslookup backend
# Visualizar mapeamentos de porta
docker port nome_do_container
Depuração de Rede (Network Debugging)
# Entrar no namespace de rede do container
docker exec -it app sh
# Verificar resolução de DNS
cat /etc/resolv.conf
nslookup database
# Verificar conectividade
ping -c 3 backend
curl http://backend:3000/health
More from promovaweb/skills-devops
promovaweb-devops-docker
Verifica o ambiente Docker do servidor — versão do Docker Engine, status do Swarm, nós do cluster, rede network_swarm_public, volumes externos e conformidade geral com as recomendações da Promovaweb.
10promovaweb-devops-review-evolution-go-stack
Verifica a Stack do Evolution Go. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Evolution Go de Acordo com as Recomendações da Promovaweb.
9promovaweb-devops-docker-volumes
Implemente armazenamento persistente com Docker volumes, bind mounts e estratégias de backup
9promovaweb-devops-dockerfile-basics
Aprenda os fundamentos do Dockerfile e as melhores práticas para criar imagens de container prontas para produção
9promovaweb-devops-review-chatwoot-stack
Verifica a Stack do Chatwoot. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Chatwoot de Acordo com as Recomendações da Promovaweb.
9promovaweb-devops-review-kestra-stack
Verifica a Stack do Kestra. Além disso analisa parâmetros, rotas Traefik, volumes, recursos e conformidade do stack Kestra de Acordo com as Recomendações da Promovaweb.
9