Chuck's Academy

Docker

Redes en Docker: Conectividad entre Contenedores

Docker ofrece un sistema de redes completo que permite a los contenedores comunicarse entre sí y con el sistema host. Este capítulo explora los diferentes tipos de redes en Docker y cómo configurarlas para lograr una conectividad eficaz entre contenedores.

Conceptos Básicos de Redes en Docker

Cada contenedor en Docker puede conectarse a una o más redes, lo que le permite comunicarse con otros contenedores y con el mundo exterior. Docker proporciona varios tipos de redes, cada una con sus propias características.

Docker networkDocker network

Tipos de Redes en Docker

Docker incluye varios tipos de redes predeterminadas que cubren las necesidades más comunes de conectividad entre contenedores.

Red Bridge

La red bridge es la configuración predeterminada para contenedores en Docker. Esta red permite que los contenedores en el mismo host se comuniquen entre sí, pero están aislados de la red del host y del exterior.

bash
"El comando docker network create my-bridge-network crea una red personalizada llamada my-bridge-network de tipo bridge, que permite la comunicación entre contenedores en el mismo host."

Red Host

La red host permite que el contenedor comparta la pila de red del host. Esto significa que el contenedor usará la IP y puertos del sistema host, eliminando la capa de aislamiento de red entre ambos.

bash
"El comando docker run menos menos network host my-app ejecuta el contenedor my-app en la red host, permitiendo que comparta la IP y puertos del sistema host."

Red None

La red none aísla completamente al contenedor, sin permitirle conectarse a ninguna red. Es útil para tareas que no requieren ninguna conectividad externa.

bash
"El comando docker run menos menos network none my-app ejecuta el contenedor my-app en un estado aislado, sin conexión de red."

Conectando Contenedores en una Red Bridge

La red bridge permite que los contenedores se comuniquen entre sí usando sus nombres de contenedor como si fueran direcciones de host. Esto facilita la comunicación sin necesidad de conocer las IPs de cada contenedor.

Ejemplo de Configuración

Primero, cree una red bridge personalizada:

bash
"Este comando crea una red bridge personalizada llamada my-app-network."

Luego, ejecute dos contenedores en esta red:

bash
"Aquí, el primer contenedor llamado db ejecuta una base de datos en la red my-app-network, y el segundo contenedor llamado web ejecuta una aplicación web en la misma red, permitiendo que ambos se comuniquen."

Conexión entre Redes y Contenedores

Docker permite conectar un contenedor a múltiples redes para permitir una comunicación más compleja. A continuación se muestra cómo conectar un contenedor a una segunda red.

bash
"Este comando conecta el contenedor web a otra red llamada another-network, permitiendo que se comunique con contenedores en ambas redes."

Configuración de Redes Personalizadas

Docker permite configurar redes personalizadas con parámetros como subred y gateway. Esto es útil para tener control detallado sobre la estructura de red de los contenedores.

Ejemplo de creación de una red personalizada con configuración de subred y gateway:

bash
"Este comando crea una red llamada my-custom-network con una subred específica definida como ciento noventa y dos punto ciento sesenta y ocho punto uno punto cero barra veinticuatro."

Inspección de Redes

Para ver la configuración de una red y los contenedores conectados, se puede usar el comando docker network inspect seguido del nombre de la red.

bash
"El comando docker network inspect my-app-network muestra detalles de configuración de la red my-app-network y los contenedores conectados a ella."

Conclusión

La gestión de redes en Docker es fundamental para aplicaciones que requieren comunicación entre múltiples contenedores o con el host. En el próximo capítulo, exploraremos Docker Compose, una herramienta que simplifica la configuración de redes y otros recursos en aplicaciones multicontenedor.


Pregúntame lo que sea