Saltar a contenido

Redes.

Tipos de Red.

  • Bridge: Todos los contenedores están en la misma red, pero separadas del anfitrión.

    🕸️ Por defecto se configura en este modo.

    🕸️ Podemos crear varias redes bridge, para que ciertos grupos de contenedores se vean entre ellas, pero no con el resto de contenedores.

    🕸️ Existe ya una red creada "bridge" por defecto (docker network inspect bridge).

  • Host: El contenedor comparte toda la configuración de red de la máquina anfitriona.

    🕸️ Si el contenedor tiene un servicio en el puerto 80, podremos acceder a él desde el puerto 80 de la máquina anfitriona.

    🕸️ Existe ya una red creada "host" por defecto (docker network inspect host).

  • None: Contenedor sin red.

Comando Docker Network.

Algunos de las opciones más habituales a la hora de crear una red en docker son:

Opción
Significado
--driver Si queremos modo bridge, host, none.
--internal Restringe el acceso desde el exterior. Sin Internet.
--gateway Indica la puerta de enlace de la red.
--ip-range Delimita el rango de IPs asignables al contenedor.
--subnet Define la subred en formato CIDR
--ip Especificar una IP en concreto
--dns Especificar un servidor DNS en particular

Crear una red.

Ejemplo de una red:

✔️ Nombre: miRED

✔️ Red: 172.20.0.0/16

✔️ Al contenedor se le va a asignar una IP 172.20.2.X

✔️ Puerta de enlace: 172.20.2.100

docker network create --subnet=172.20.0.0/16 --ip-range=172.20.2.0/24 --gateway=172.20.2.100 miRED

Ejemplos.

Crear un contenedor con una red.

Se le asigna una red llamada "redInterna" creada con anterioridad.

docker run -d -it --name miCONTENEDOR --network redInterna miIMAGEN

Conectar una red a un contenedor ya existente.

BRIDGE

Solo funciona con redes tipo Bridge. Para redes host debemos recrear el contenedor.

docker network connect miRED miCONTENEDOR

Conectar un contenedor a la red de la máquina anfitriona.

Red HOST

Existe una red por defecto llamada host que une el contenedor con la red de la máquina anfitriona.

docker run -d -it --name miCONTENEDOR --network host miIMAGEN

Conectar un contenedor ya existente a la red host.

Limitación red HOST

Debemos crear una imagen del contenedor y recrearlo.

docker commit miCONTENEDOR miIMAGEN
docker run -d -it --name miCONTENEDOR --network host miIMAGEN

Desconectar una red de un contenedor.

docker network disconnect miRED miCONTENEDOR

Listar las redes creadas.

docker network ls

Listar las redes creadas.

docker network rm miRED

Información detallada de una red.

docker network inspect miRED

Traducción de puertos.

Podemos traducir puertos de nuestra máquina anfitriona al contenedor.

Ejemplo. Todo lo que le llegue al puerto 8080 de la máquina anfitriona lo redirige al puerto 80 del contenedor.

docker run -d -it --name miCONTENEDOR -p 8080:80 miIMAGEN