7. Redes en Docker
Docker gestiona redes de forma automática y flexible para permitir la comunicación entre contenedores, entre contenedores y el host, o entre contenedores en diferentes hosts.
Tipos de redes en Docker
| Tipo | Descripción |
|---|---|
bridge |
Red por defecto para contenedores independientes |
host |
El contenedor comparte la red del host directamente |
none |
El contenedor no tiene red |
overlay |
Redes entre múltiples hosts (requiere Docker Swarm) |
Redes bridge
Este es el tipo más común. Docker crea una red bridge por defecto y cada contenedor se conecta a ella si no se especifica otra.
Crear red personalizada
docker network create mi_red
Usar la red en un contenedor
docker run -d --name contenedor1 --network mi_red nginx
Los contenedores en la misma red pueden comunicarse por nombre:
curl http://contenedor1
Redes en Docker Compose
Docker Compose crea automáticamente una red para todos los servicios, pero puedes definir redes personalizadas:
services:
backend:
image: myapi
networks:
- interna
frontend:
image: myui
networks:
- interna
networks:
interna:
driver: bridge
Esto permite aislar servicios y controlar la topología de red de tu arquitectura.
Ver y gestionar redes
docker network ls
docker network inspect mi_red
docker network rm mi_red
Casos de uso comunes
- Comunicación interna entre microservicios (
backend,db,cache...) - Aislamiento de entornos (red por proyecto o entorno)
- Red compartida para monitoreo, métricas, logs
Notas sobre el modo host
Cuando se usa --network host (solo en Linux), el contenedor comparte la pila de red del sistema host:
- No hay NAT ni aislamiento
- El contenedor escucha directamente en los puertos del host
Esto puede ser útil para herramientas de red (como sniffers), pero no es recomendado para la mayoría de casos por seguridad.
Redes avanzadas (overlay, Macvlan)
overlay: conecta contenedores en diferentes hosts mediante Docker Swarm o Kubernetes.macvlan: asigna una dirección MAC dedicada a cada contenedor, útil en redes de baja latencia o integración con infraestructura física.
Estas requieren configuraciones más complejas y no son necesarias en la mayoría de despliegues locales o de desarrollo.