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 | |
---|---|
--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