Introducción
En este tema, exploraremos cómo Docker maneja las redes y cómo puedes configurar y gestionar redes para tus contenedores. La red es un componente crucial en cualquier aplicación distribuida, y Docker proporciona varias herramientas y opciones para facilitar la comunicación entre contenedores y con el mundo exterior.
Conceptos Clave
Antes de profundizar en los comandos y configuraciones, es importante entender algunos conceptos clave:
- Bridge Network: Es la red predeterminada que Docker crea en el host. Los contenedores en esta red pueden comunicarse entre sí, pero no con el exterior a menos que se expongan puertos.
 - Host Network: Permite que un contenedor use la red del host directamente. Esto puede ser útil para aplicaciones que requieren un alto rendimiento de red.
 - Overlay Network: Utilizada principalmente en entornos de orquestación como Docker Swarm, permite la comunicación entre contenedores en diferentes hosts.
 - Macvlan Network: Permite asignar una dirección MAC a un contenedor, haciéndolo parecer un dispositivo físico en la red.
 - None Network: Desactiva la red para el contenedor.
 
Tipos de Redes en Docker
Docker ofrece varios tipos de redes que puedes utilizar según tus necesidades:
| Tipo de Red | Descripción | 
|---|---|
| Bridge | Red predeterminada para contenedores en un solo host. | 
| Host | Contenedor comparte la red del host. | 
| Overlay | Red para contenedores en múltiples hosts. | 
| Macvlan | Contenedor obtiene una dirección MAC en la red física. | 
| None | Contenedor sin red. | 
Comandos Básicos de Redes en Docker
Listar Redes
Para listar todas las redes disponibles en tu entorno Docker, usa el siguiente comando:
Crear una Red
Puedes crear una red personalizada usando el comando docker network create. Por ejemplo, para crear una red de tipo bridge:
Inspeccionar una Red
Para obtener detalles sobre una red específica, usa el comando docker network inspect seguido del nombre de la red:
Conectar un Contenedor a una Red
Para conectar un contenedor a una red específica, usa el comando docker network connect:
Desconectar un Contenedor de una Red
Para desconectar un contenedor de una red, usa el comando docker network disconnect:
Ejemplo Práctico
Vamos a crear una red personalizada y conectar dos contenedores a esta red para que puedan comunicarse entre sí.
Paso 1: Crear una Red
Paso 2: Ejecutar Contenedores en la Nueva Red
docker run -d --name container1 --network my_custom_network nginx docker run -d --name container2 --network my_custom_network nginx
Paso 3: Verificar la Conectividad
Para verificar que los contenedores pueden comunicarse entre sí, puedes usar el comando docker exec para entrar en uno de los contenedores y hacer ping al otro:
Ejercicio Práctico
Ejercicio 1: Crear y Conectar Redes
- Crea una red de tipo bridge llamada 
test_network. - Ejecuta dos contenedores de Nginx en esta red.
 - Verifica que los contenedores pueden comunicarse entre sí.
 
Solución
- 
Crear la red:
docker network create test_network - 
Ejecutar los contenedores:
docker run -d --name nginx1 --network test_network nginx docker run -d --name nginx2 --network test_network nginx - 
Verificar la conectividad:
docker exec -it nginx1 ping nginx2 
Conclusión
En esta sección, hemos cubierto los conceptos básicos de las redes en Docker, los tipos de redes disponibles y cómo gestionar redes y contenedores. La capacidad de configurar y gestionar redes es fundamental para construir aplicaciones distribuidas y escalables. En el próximo módulo, profundizaremos en la persistencia de datos con volúmenes en Docker.
Docker: De Principiante a Avanzado
Módulo 1: Introducción a Docker
- ¿Qué es Docker?
 - Instalando Docker
 - Arquitectura de Docker
 - Comandos Básicos de Docker
 - Entendiendo las Imágenes de Docker
 - Creando tu Primer Contenedor Docker
 
Módulo 2: Trabajando con Imágenes Docker
- Docker Hub y Repositorios
 - Construyendo Imágenes Docker
 - Conceptos Básicos de Dockerfile
 - Gestionando Imágenes Docker
 - Etiquetado y Publicación de Imágenes
 
Módulo 3: Contenedores Docker
- Ejecutando Contenedores
 - Ciclo de Vida del Contenedor
 - Gestionando Contenedores
 - Redes en Docker
 - Persistencia de Datos con Volúmenes
 
Módulo 4: Docker Compose
- Introducción a Docker Compose
 - Definiendo Servicios en Docker Compose
 - Comandos de Docker Compose
 - Aplicaciones Multi-Contenedor
 - Variables de Entorno en Docker Compose
 
Módulo 5: Conceptos Avanzados de Docker
- Profundización en Redes Docker
 - Opciones de Almacenamiento Docker
 - Mejores Prácticas de Seguridad en Docker
 - Optimizando Imágenes Docker
 - Registro y Monitoreo en Docker
 
Módulo 6: Docker en Producción
- CI/CD con Docker
 - Orquestando Contenedores con Docker Swarm
 - Introducción a Kubernetes
 - Desplegando Contenedores Docker en Kubernetes
 - Escalado y Balanceo de Carga
 
