Modelos de Redes en Docker: Bridge, Host, Overlay y MacVLan

Clase 18 de 34Curso de Docker Avanzado

Resumen

¿Qué modelos de red existen en Docker?

Explorar redes en Docker abre un mundo de posibilidades, especialmente para entender cómo operan los contenedores. Docker ofrece cinco modelos distintos de red, pero uno destaca como el más utilizado, mientras que los demás son más apropiados para pruebas. Esta sección desglosa cada uno de estos modelos y sus aplicaciones.

¿Qué es el modelo de red bridge?

El modelo bridge es el predeterminado en Docker y permite la comunicación entre contenedores en un entorno local. Este modelo es perfecto para pruebas internas, donde quieres que los contenedores "hablen" sin interferir con el mundo exterior.

¿Para qué sirve el modelo de host?

El modelo host permite que los contenedores usen la dirección IP del host, simulando un equipo real dentro de la red. Este modelo es eficiente y consume más recursos, ideal para simular entornos de producción y pruebas detalladas de red.

¿Por qué aislar un contenedor?

El modelo de red aislado desconecta un contenedor del mundo exterior, útil para pruebas de resiliencia del sistema ante fallos de comunicación. Esto permite analizar el comportamiento del sistema si una parte no está operativa, ideales para entornos de prueba.

¿Cómo funciona el modelo overlay?

El modelo overlay posibilita que los contenedores se comuniquen entre sí, aun estando en máquinas diferentes. Es crucial en escenarios de despliegue a gran escala y es ampliamente utilizado por orquestadores como Kubernetes.

¿Qué es el modelo MacVLAN?

MacVLAN asigna una dirección MAC real a cada contenedor, haciéndolos parecer máquinas independientes para la red. Este modelo es útil para crear entornos en los que cada contenedor actúa como una entidad autónoma, proporcionando flexibilidad para diversas configuraciones.

¿Cómo establecer comunicación entre contenedores en Docker?

Establecer comunicación entre contenedores es un aspecto esencial al trabajar con Docker, y el modelo bridge nos facilita este proceso. A continuación, te mostramos un ejemplo práctico de cómo configurar una red personal para que dos contenedores se comuniquen.

¿Cómo crear una red bridge?

Para este ejercicio, comenzamos creando una red con el comando:

docker network create mi_red_bridge

Este comando genera una red identificada por un conjunto único de caracteres.

¿Cómo descargar y ejecutar un contenedor Nginx?

Primero, descargamos y ejecutamos un contenedor de Nginx, asignándolo a nuestra red:

docker run -d --network mi_red_bridge --name servidor_web nginx:latest

Este comando despliega Nginx en segundo plano, dentro de la red bridge.

¿Cómo ejecutar un cliente con una terminal Linux?

Para interactuar, necesitamos otro contenedor que actuará como cliente:

docker run -it --network mi_red_bridge --name cliente alpine:latest /bin/sh

Alpine proporciona una terminal ligera para ejecutar comandos de prueba.

¿Cómo establecer comunicación entre los contenedores?

En el cliente, instalamos 'curl' para probar la comunicación:

apk add --no-cache curl

Luego, usamos 'curl' para acceder al servidor web:

curl http://servidor_web

Esto muestra la página de inicio del servidor Nginx desde el cliente, confirmando la comunicación entre ambos contenedores vía la red bridge.

Recomendaciones para practicar con redes en Docker

Jugar con las configuraciones de red en Docker es una excelente forma de aprender y comprender mejor el comportamiento de contenedores en diferentes entornos. Te animamos a experimentar con todos los modelos de red para determinar cuál se adapta mejor a tus proyectos. Esta práctica no solo enriquece tu conocimiento, sino que también potencia tus habilidades para enfrentar desafíos reales en entornos de producción. ¡No te detengas y sigue aprendiendo!