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
OVERLAY Driver
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)
comandos
docker network ls
docker network inspect <network_id>
docker network create –driver [bridge|host|none] <nombre_network>
: 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=<nombre_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