En Docker, una red es una abstracción que permite la comunicación entre contenedores. Docker utiliza varias redes por defecto, pero también ofrece la capacidad de crear redes personalizadas según las necesidades específicas de tu aplicación. Estas redes pueden ser de diferentes tipos, como bridge
, host
, y overlay
, cada una con sus características y casos de uso.
1. Bridge: Esta es la red predeterminada para contenedores que no se conectan a una red externa. Es ideal para entornos de desarrollo y pruebas locales.
2. Host: Esta red permite a los contenedores compartir la pila de red del host, lo que puede ser útil para aplicaciones que necesitan un alto rendimiento de red.
3. Overlay: Utilizada para redes en clústeres de Docker Swarm, permite la comunicación entre contenedores que están en diferentes máquinas físicas o virtuales.
4. Macvlan: Asigna una dirección MAC a un contenedor, lo que le permite aparecer como un dispositivo físico en la red.
La red bridge
es la opción más común para redes locales en Docker. Puedes crear una red bridge
personalizada con el siguiente comando:
docker network create --driver bridge mi_red_bridge
Este comando crea una red llamada mi_red_bridge
utilizando el controlador bridge
. Para ver todas las redes disponibles, puedes usar:
docker network ls
Para crear una red overlay
, primero debes tener un clúster de Docker Swarm en funcionamiento. Si no has inicializado un clúster, hazlo con:
docker swarm init
Luego, crea la red overlay
con:
docker network create --driver overlay mi_red_overlay
Este comando crea una red llamada mi_red_overlay
que puede ser utilizada por contenedores distribuidos en diferentes nodos del clúster.
La red host
es menos común pero puede ser útil para aplicaciones que necesitan un rendimiento de red cercano al del host. Para crear una red host
, simplemente usa el siguiente comando:
docker network create --driver host mi_red_host
Ten en cuenta que las redes host
tienen acceso directo a la red del host y pueden implicar riesgos de seguridad si no se gestionan correctamente.
Para redes macvlan
, debes especificar detalles adicionales como la subred y la puerta de enlace. Aquí hay un ejemplo de cómo crear una red macvlan
:
docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 mi_red_macvlan
Este comando crea una red macvlan
llamada mi_red_macvlan
con una subred y una puerta de enlace especificadas. La opción -o parent
debe ser configurada con la interfaz de red del host.
Una vez que hayas creado una red, puedes conectar contenedores a ella usando el parámetro --network
cuando ejecutas un contenedor. Por ejemplo:
docker run -d --name contenedor1 --network mi_red_bridge nginx
docker run -d --name contenedor2 --network mi_red_bridge nginx
En este caso, contenedor1
y contenedor2
estarán conectados a la red mi_red_bridge
y podrán comunicarse entre sí.
Para obtener detalles sobre una red específica, usa el comando docker network inspect
:
docker network inspect mi_red_bridge
Este comando proporciona información detallada sobre la red, incluyendo los contenedores conectados y la configuración de la red.
Crear y gestionar redes en Docker te permite personalizar y controlar cómo se comunican tus contenedores. Desde redes bridge
para entornos locales hasta redes overlay
para clústeres distribuidos, Docker ofrece flexibilidad para adaptarse a diferentes necesidades. Con los pasos descritos en esta guía, ahora puedes crear y configurar redes en Docker para optimizar la comunicación y seguridad en tus aplicaciones. ¡Experimenta y ajusta según tus requisitos para sacar el máximo provecho de tus contenedores Docker!
Jorge García
Fullstack developer