Drivers de red Docker | Nicolás Garzón
Texto
Copiar container namespace
→ network driver
→ topología single-host, host, cluster o red físicaLa mayoría de aplicaciones en un solo Engine funcionan correctamente con user-defined bridge. Los drivers avanzados deben responder un requisito concreto.
Es el modelo normal single-host.
namespace aislado;
DNS en redes definidas por usuario;
port publishing;
separación entre aplicaciones;
configuración sencilla.
forwarding/NAT;
MTU y reglas del host;
no conecta por sí solo varios hosts.
Usa bridge como punto de partida.
Bash
Copiar docker run --network host my-serviceEl container comparte el namespace de red del host en plataformas compatibles.
ciertas herramientas de red;
workloads sensibles a forwarding;
acceso a muchas interfaces/puertos;
diagnóstico especializado.
No lo uses para corregir una app que escucha mal o evitar entender bridge. Docker Desktop y otros entornos pueden ofrecer comportamiento diferente.
Bash
Copiar docker run --network none my-jobEl container conserva loopback, pero no recibe conectividad normal.
procesamiento offline;
pruebas de aislamiento;
workloads que reciben datos solo por mounts;
reducir exfiltración por red.
No reemplaza otros controles: un mount sensible sigue siendo accesible y la aplicación puede fallar si intenta DNS, telemetry o licencias.
Overlay conecta servicios a través de varios hosts en modos de orquestación compatibles.
Texto
Copiar node A container
→ encapsulación/overlay
→ red entre nodos
→ node B container
red lógica multi-host;
service discovery integrado con el orquestador;
abstracción sobre IPs físicas.
control plane;
puertos entre nodos;
MTU y encapsulación;
cifrado cuando corresponda;
observabilidad de underlay y overlay;
latencia adicional;
disponibilidad del cluster.
Un overlay no convierte Docker Compose single-host en HA. Necesita una plataforma que programe workloads entre nodos.
Macvlan presenta containers como participantes con direcciones MAC/IP de la red física.
software legado que necesita aparecer como host independiente;
appliances de red;
integración con sistemas que no aceptan NAT.
switches pueden limitar múltiples MAC por puerto;
coordinación con DHCP/IPAM;
el host puede no comunicarse directamente con containers sin configuración adicional;
exposición directa a la LAN;
troubleshooting más complejo;
soporte limitado en entornos virtualizados/cloud.
No lo elijas solo porque “quiero una IP propia”. Evalúa bridge + reverse proxy o routing normal primero.
Ipvlan comparte la MAC del parent y diferencia tráfico por IP, con modos y comportamiento específicos.
Puede evitar algunas limitaciones de múltiples MAC, pero requiere conocimiento de:
L2/L3;
routing;
subnets;
parent interfaces;
red física;
políticas del proveedor.
Es una decisión de infraestructura, no solo un flag de Docker.
Drivers externos pueden integrar SDN, cloud networks o políticas especializadas.
Antes de adoptarlos revisa:
mantenimiento;
compatibilidad con versión de Engine;
alta disponibilidad;
upgrades;
modelo de seguridad;
observabilidad;
recuperación si el plugin falla;
soporte del proveedor.
Un plugin con privilegios puede ampliar la superficie del host.
Driver Alcance Aislamiento Uso típico bridge Un host Bueno Aplicaciones normales host Host directo Reducido Casos de red especiales none Sin red Máximo de conectividad Jobs offline overlay Varios hosts Lógico por cluster Orquestación macvlan/ipvlan Red física Depende de LAN Legado/appliances
¿Un solo host o varios?
¿Necesitas publicar pocos puertos o aparecer directamente en LAN?
¿Qué aislamiento exige el riesgo?
¿La plataforma soporta el driver?
¿Cómo se observa DNS, rutas y paquetes?
¿Qué ocurre al perder un nodo o plugin?
¿Quién administra IPAM y subnets?
¿Existe overlap con VPN/cloud?
¿Cómo se aplica firewall?
¿La complejidad aporta valor medible?
El container puede quedar expuesto a la LAN sin pasar por reglas de publicación esperadas. Debe tener firewall y autenticación propios.
Protege control plane, certificados y puertos entre nodos. Considera cifrado de datos en tránsito según sensibilidad.
Reduce red, pero no impide ataques por filesystem, kernel o devices.
Bash
Copiar docker network inspect network
docker exec container ip addr
docker exec container ip routeComprueba listeners directamente en host:
salud de nodos;
underlay entre hosts;
MTU;
service discovery;
endpoint del service;
políticas del cluster.
parent interface;
ARP/NDP;
routing;
VLAN;
switch port security;
IP duplicada.
Host networking falla al arrancar aunque el mismo container funcionara en bridge.
Overlay/VPN puede permitir ping pequeño y fallar con TLS o payloads grandes.
Macvlan no funciona aunque la configuración local parezca correcta.
Algunos drivers o funciones tienen limitaciones. Verifica soporte real.
Host/macvlan no equivalen necesariamente a Engine Linux nativo por la VM intermedia.
Pierdes aislamiento y portabilidad por una mejora quizá irrelevante.
Añade más complejidad que resolver service discovery correctamente.
La red multi-host no programa, repara ni escala workloads por sí sola.
Produce overlaps, rutas ambiguas o IPs duplicadas.
Bridge resuelve la mayoría de workloads single-host.
Host elimina gran parte del aislamiento de red.
None es útil para jobs realmente offline.
Overlay necesita una plataforma multi-host y operación de cluster.
Macvlan/ipvlan integran con la red física y requieren coordinación real.
Un driver avanzado debe resolver un requisito, no ocultar una mala comprensión.
Comprueba lo aprendido
¿Qué pierde un container al usar host networking?
Diseña un caso legítimo para --network none.
¿Qué responsabilidades añade overlay?
¿Por qué macvlan puede fallar en cloud o switches empresariales?
Elige driver para una API single-host y justifica la decisión.
Docker Compose: fundamentos , donde varios containers, networks, volumes y configuraciones se modelan como una sola aplicación declarativa.