Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:cursos:docker_a_fondo_introduccion_kubernetes:redes_docker

¡Esta es una revisión vieja del documento!


Las redes en Docker

Notas del curso Docker a fondo e Introducción a Kubernetes: aplicaciones basadas en contenedores

En este módulo vamos a hablar un poco del sistema de red en Docker. No vamos a entrar en detalles profundamente técnicos acerca de cómo integra Docker sus redes con el SO, cómo manipula las iptables o de qué manera se integra con el servicio de red de Windows. Lo que vamos a ver es la gestión de redes de Docker y algunos detalles de funcionamiento que pueden ser interesantes desde el punto de vista práctico.

En este módulo vas a ver los distintos tipos de red que tiene Docker, algunas de sus características y cómo manejar las redes en Docker.

¡Vamos allá!

Redes de tipo bridge

El primer tipo de red que vamos a ver es la red de tipo bridge. Toda máquina que es host de Docker (o sea que tiene el daemon de Docker instalado) tiene una red de este tipo, llamada bridge (también conocida como docker0). Esta es la red dentro de la que se ejecutan los contenedores por defecto.

Red bridge por defecto

Te presento al comando docker network ls. Este te listará todas las redes de Docker que tengas en tu máquina, así como su tipo:

En la imagen se puede observar que tenemos 4 redes.

Cuando ejecutas un contenedor con docker run dicho contenedor se asocia por defecto a la red llamada bridge (de tipo bridge):

La red bridge por defecto no tiene soporte de DNS. Eso significa que los contenedores solo pueden comunicarse a través de direcciones IP directas:

Por lo general, la red bridge por defecto no deberías usarla más que para ejecutar contenedores aislados.

Red propia de tipo bridge

Podemos crear redes adicionales de tipo bridge, las se comportarán del mismo modo, aunque con la diferencia de que en este caso sí que hay resolución de DNS. De hecho, esas redes son las que crea Docker Compose por nosotros.

Para crear esas redes usaremos el comando docker network create –driver bridge <nombre-red>:

Al ejecutar un contenedor podemos usar el modificador --network para indicar en qué red queremos que se ejecute:

En la imagen anterior puedes ver que el contenedor container1 puede acceder al contenedor container2 a través de su nombre. Eso es porque en estas redes el propio daemon de Docker monta un servidor de DNS.

Por defecto, Docker Compose crea una red bridge propia para ejecutar todos los contenedores.

Las redes bridge están aisladas unas de otras y su limitación principal es que todos los contenedores deben ejecutarse en la misma máquina. Cada contenedor obtiene su propia IP dentro de la red y espacio de puertos.

Redes de tipo host

Manejo de redes en Docker

informatica/sistemas_operativos/cursos/docker_a_fondo_introduccion_kubernetes/redes_docker.1708159987.txt.gz · Última modificación: por tempwin