Qué es una red en Docker
Una red en Docker proporciona un medio para que los contenedores se comuniquen entre sí y con el mundo exterior. Cada contenedor puede ser conectado a una o más redes, lo que permite la segmentación del tráfico y un mayor control sobre las interacciones entre servicios. Con esto, Docker permite crear entornos de desarrollo más seguros y aislados.
Tipos de redes en Docker
Docker ofrece varias opciones de red, cada una diseñada para satisfacer diferentes necesidades. A continuación se describen los tipos más comunes:
- Bridge: Es el tipo de red predeterminado. Permite que los contenedores en la misma red se comuniquen entre sí. Los contenedores pueden ser accedidos a través de la IP asignada por Docker.
- Host: En este modo, un contenedor comparte la pila de red del host. Esto significa que no se aplica el aislamiento de red, y el contenedor utiliza la misma IP que el anfitrión.
- Overlay: Permite la comunicación entre contenedores que se ejecutan en diferentes hosts. Es útil en aplicaciones distribuidas que se despliegan en un clúster de Docker Swarm.
- None: Esta opción desactiva la red para el contenedor. Se utiliza comúnmente para entornos que no requieren conectividad externa.
Creando redes en Docker
Para crear una red en Docker, se utiliza el siguiente comando:
docker network create nombre_de_la_red
Puedes especificar el controlador de red si deseas usar uno diferente al predeterminado. Por ejemplo:
docker network create --driver bridge mi_red_personalizada
Conectando contenedores a una red
Una vez que hayas creado la red, puedes conectar contenedores a ella al momento de su creación o después. Durante la creación del contenedor, puedes usar el flag –network:
docker run -d --name mi_contenedor --network nombre_de_la_red nginx
Para conectar un contenedor existente a una red, utiliza el comando:
docker network connect nombre_de_la_red nombre_del_contenedor
Gestión de redes en Docker
Docker proporciona varios comandos para gestionar redes. Algunos de los más útiles incluyen:
- Listear redes:
docker network ls - Detalles de una red:
docker network inspect nombre_de_la_red - Eliminar una red:
docker network rm nombre_de_la_red
Ejemplo práctico: implementación de una red entre contenedores
Imaginemos que quieres desplegar una aplicación que consiste en un servidor web y una base de datos. Usaremos una red bridge para conectar ambos servicios:
docker network create mi_red_app
A continuación, crea el contenedor para la base de datos MySQL:
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root --network mi_red_app mysql
Y luego, crea el contenedor para el servidor web Nginx:
docker run -d --name nginx --network mi_red_app nginx
Con esto, ambos contenedores pueden comunicarse fácilmente a través de mi_red_app sin ningún problema de conectividad.
Conclusiones
Las redes en Docker son una herramienta poderosa que permite crear arquitecturas de servicios interconectadas y eficaces. Comprender cómo funcionan y cómo configurarlas es fundamental para aprovechar al máximo Docker en el desarrollo de aplicaciones. No olvides explorar más sobre Docker Compose y cómo integrarlo con tus redes Docker para una gestión más sencilla.

Deja una respuesta