Tipos de redes en docker
Cuando instalamos docker tenemos las siguientes redes predefinidas:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
ec77cfd20583 bridge bridge local
69bb21378df5 host host local
089cc966eaeb none null local
-
Por defecto los contenedores que creamos se conectan a la red de tipo bridge llamada
bridge
(por defecto el direccionamiento de esta red es 172.17.0.0/16). Los contenedores conectados a esta red que quieren exponer algún puerto al exterior tienen que usar la opción-p
para mapear puertos.Este tipo de red nos van a permitir:
- Aislar los distintos contenedores que tengo en distintas subredes docker, de tal manera que desde cada una de las subredes solo podremos acceder a los equipos de esa misma subred.
- Aislar los contenedores del acceso exterior.
- Publicar servicios que tengamos en los contenedores mediante redirecciones que docker implementará con las pertinentes reglas de iptables.
-
Si conecto un contenedor a la red host, el contenedor ofrece el servicio que tiene configurado en el puerto de la red del anfitrión. No tiene ip propia, sino es cómo si tuviera la ip del anfitrión. Por lo tanto, los puertos son accesibles directamente desde el host. Por ejemplo:
$ docker run -d --name mi_servidor --network host josedom24/aplicacionweb:v1 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 135c742af1ff josedom24/aplicacionweb:v1 "/usr/sbin/apache2ct…" 3 seconds ago Up 2 seconds mi_servidor
Prueba acceder directamente al puerto 80 del servidor para ver la página web.
-
La red none no configurará ninguna IP para el contenedor y no tiene acceso a la red externa ni a otros contenedores. Tiene la dirección loopback y se puede usar para ejecutar trabajos por lotes.