= network == BRIDGE Driver * Docker monta otra red y para acceder desde fuera del host (o desde el host) a través de mapeo de puertos * Docker se encarga de montarlo {{ :info:cursos:altran:docker:pasted:20180717-091150.png?500 }} == OVERLAY Driver necesita de BBDD para funcionar: Zookeeper, Consul, Etcd montaje en producción {{ :info:cursos:altran:docker:pasted:20180717-091455.png?500 }} == redes por defecto (en instalación docker) * bridge : puente * host : misma red que el host (le preguntará el DHCP de la red) * none : sin red, sin interfaz (solo loopback) * más info: [[https://blog.docker.com/2016/12/understanding-docker-networking-drivers-use-cases/]] == comandos * ''docker network ls'' * ''docker network inspect '' * CIDR : [[https://es.wikipedia.org/wiki/Classless_Inter-Domain_Routing]] * ''docker network create --driver [bridge|host|none] '' : crea una nueva red con otro rango === comunicación entre contenedores * vieja usanza: ''docker run -d --name nginx nginx:alpine && docker run -it --name alpine --link=nginx:nginx alpine sh'': con el comando **--link** vinculamos el nombre nginx al contenedor nginx (modifica el fichero /etc/hosts) -> método previo a 17.2 (está deprecado) -> tiene dependencias (has de tener arrancado el primer contenedor para que funcione * después de la 17.2, en la bridge por defecto, automáticamente añade los contenedores a otro host -> mismo problema de dependencia, solo añade los contenedores vivos en ese momento. * ''docker run -d --name nginx --network= nginx'' * ''docker run -it --network=test alpine sh'' : desde este contenedor podemos acceder al primero y la resolución es vía DNS (se encarga Docker de gestionar) La red bridge por defecto funciona a la vieja usanza (por compatibilidad) y una red "personalizada" usa DNS para resolver === comunicación entre redes diferentes * ''docker network **connect** NETWORK CONTAINER'' : añadimos otro interfaz de red para que el contenedor tenga acceso a las dos redes === prune * ''docker network prune'' : elimina las redes "huérfanas" * ''docker network rm'' : eliminar redes a mano