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:
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.¶
docker network connect miRED miCONTENEDOR
Conectar un contenedor a 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.¶
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