Aprende a dominar las redes en Docker con un enfoque práctico y claro. Aquí verás los cinco modelos de red que ofrece Docker, por qué el modelo bridge es el más usado para desarrollo y cómo realizar una prueba de comunicación entre contenedores con NGINX y Alpine usando comandos como docker network create, docker run -d y docker run -it, además de instalar curl dentro de un contenedor.
¿Qué modelos de red en Docker existen y cuándo usarlos?
Comprender los modelos te ayuda a elegir el entorno adecuado para pruebas y despliegues. La mayoría de los casos de uso de desarrollo funcionan con bridge, mientras que los demás se orientan a pruebas específicas o a orquestación.
- Bridge o puente: red por defecto de Docker. Los contenedores locales se comunican entre sí por nombre. Ideal para desarrollo y pruebas entre servicios.
- Host: el contenedor usa la IP real del host. Simula un equipo real. Más eficiente, con mayor consumo de recursos de red.
- Aislado: el contenedor queda sin comunicación externa. Útil para probar fallos y reacciones del sistema ante componentes ausentes.
- Overlay: permite que contenedores en máquinas diferentes se comuniquen. Usado por orquestadores como Kubernetes en topologías distribuídas.
- Mac VLAN: asigna una dirección MAC real a cada contenedor. La red percibe varios equipos independientes; habilita comportamientos totalmente aislados.
¿Cómo crear una red bridge y conectar contenedores?
El ejercicio se centra en crear una red personalizada y verificar que dos contenedores pueden comunicarse por nombre de servicio dentro de esa red, manteniéndola exclusiva respecto al host.
¿Cómo crear la red personalizada?
Crea la red para agrupar los contenedores con seguridad compartida.
docker network create mi_red_brige
- Red identificable por nombre.
- Aísla el tráfico entre miembros.
¿Cómo desplegar el servidor NGINX en segundo plano?
Lanza el servidor en detached mode y conéctalo a la red.
docker run -d --network mi_red_brige --name servidor_web nginx
- La imagen NGINX se descarga si no existe localmente.
- El contenedor queda ejecutándose y visible en Docker Desktop.
¿Cómo probar comunicación desde Alpine con terminal interactiva?
Inicia un cliente ligero con acceso a la red y prueba con curl.
docker run -it --network mi_red_brige --name cliente alpine
apk add --no-cache curl
curl http://servidor_web
- El parámetro -it habilita interactividad con la terminal.
- Se instala curl dentro del contenedor con apk add --no-cache.
- La URL por nombre de contenedor, servidor_web, responde con la página de inicio de NGINX.
- Desde el host no podrás acceder a esa URL: el host no es parte de la red, lo que confirma el aislamiento.
¿Qué habilidades y conceptos clave se refuerzan?
Este flujo consolida habilidades esenciales para trabajar con contenedores en entornos de desarrollo y pruebas controladas.
- Configuración de redes de Docker: creación con docker network create.
- Ejecución de contenedores: uso de docker run con -d para segundo plano y -it para terminal interactiva.
- Resolución por nombre dentro de la red: acceso mediante http://servidor_web desde otro contenedor.
- Aislamiento de red: la red bridge personalizada es exclusiva, el host queda fuera.
- Gestión de imágenes ligeras: Alpine como cliente para pruebas rápidas.
- Instalación de utilidades en contenedores: apk add --no-cache curl para inspecciones HTTP.
- Verificación visual y acceso a terminal: revisión en Docker Desktop y uso de exec para abrir la consola del contenedor.
¿Tienes dudas o quieres compartir tu forma de probar redes en Docker? Comenta tu escenario y los comandos que te funcionan mejor.