Docker network

David Guzman Lopez


Introducción

El principal atractivo de la contenedorización es el aislamiento. Cada contenedor ejecuta su aplicación en un entorno seguro y autosuficiente. Sin embargo, para que una aplicación moderna sea funcional, sus componentes deben poder comunicarse: el servidor de aplicaciones debe hablar con la base de datos, el servicio de caché debe ser accesible para el backend, y el frontend debe responder a las peticiones del usuario.

Aquí es donde entra en juego Docker Networking. Docker proporciona un robusto sistema de red virtual que permite a los contenedores comunicarse entre sí y con el mundo exterior de forma segura y eficiente. Entender cómo Docker crea y gestiona estas redes es esencial para pasar de un simple contenedor a una arquitectura de microservicios robusta y funcional.

En este artículo, exploraremos los comandos clave para la gestión de redes, los drivers o tipos de redes más comunes y cómo asegurar que sus servicios puedan encontrarse sin problemas.

Tipos de Redes (Drivers) en Docker

Docker utiliza diferentes drivers de red que determinan cómo se conectan los contenedores entre sí y con el Host. Los más importantes son:

1. Bridge (Puente)

El driver Bridge es la red por defecto en Docker. Cuando ejecutas un contenedor sin especificar una red, Docker lo adjunta automáticamente a la red bridge predeterminada.

  • Funcionamiento: Crea una red virtual interna en tu máquina Host. Los contenedores conectados a la misma red bridge pueden comunicarse entre sí usando sus direcciones IP internas.
  • Aislamiento: Está aislado de la red del Host por defecto. Para que el mundo exterior acceda al contenedor, se requiere el mapeo de puertos (-p 3000:3000).
  • Uso: Ideal para aplicaciones independientes o pequeños conjuntos de servicios que se ejecutan en un mismo Host (como una aplicación y su base de datos).

2. Host

El driver Host elimina el aislamiento de red entre el contenedor y el Host.

  • Funcionamiento: El contenedor utiliza directamente la pila de red de la máquina Host. No hay aislamiento de red entre el contenedor y el Host.
  • Ventaja: Ofrece un rendimiento ligeramente superior porque se evita la capa de red virtualización.
  • Riesgo: Introduce un riesgo de seguridad, ya que los servicios del contenedor pueden entrar en conflicto con los puertos ya usados por el Host.

3. Overlay (Superposición)

El driver Overlay está diseñado para entornos de clústeres (como Docker Swarm o Kubernetes).

  • Funcionamiento: Permite que contenedores que se ejecutan en diferentes máquinas Host se comuniquen como si estuvieran en la misma red local.
  • Uso: Fundamental para la escalabilidad y la alta disponibilidad en producción.

Gestión de Redes en la Terminal

crear una red y asociar contenedores

docker network ls 

listo las redes

docker network create --attachable plazinet 

creo la red llamada platzi net

 –attachable permite que otros contenedores se puedan unir a la red de nombre platzi net 

docker inspect plazinet 

veo toda la definición de la red creada

docker run -d --name db mongo 

creo el contenedor de la BBDD

docker network connect plazinet dbm

conecto el contenedor “db” a la red “platzinet”


David Guzmán López

Ingeniero Electrónico

Electronic Engineer | DevOps Engineer | SRE | Cloud Engineer | Infrastructure Engineer