Redes
Las redes en Docker son un tema muy importante, ya que nos permiten conectar contenedores entre sí o aislarlos unos de otros. Al final, algo que nos permite docker es desplegar múltiples contenedores o servicios en el mismo servidor. En muchos de los casos, estos contenedores serán servicios que no tienen nada que ver unos con otros, y por lo tanto, no deberían poder comunicarse entre sí por seguridad. En otros casos, necesitaremos que los contenedores se comuniquen entre sí, por ejemplo, un contenedor de base de datos y un contenedor de aplicación.
Todo esto, lo veremos a través del comando docker network y de las opciones de red que podemos especificar al crear un contenedor. Vamos a ello.
Dentro vídeo: https://youtu.be/lQoh9gaEvvc
Crear una red y tipos de redes
Para crear una red, podemos usar el comando docker network create:
docker network create mi-red
Podemos especificar el driver de red con la opción --driver, por defecto, el driver es bridge:
docker network create --driver bridge mi-red
Los tipos de redes más comunes que podemos crear:
bridge: Red por defecto, que permite la comunicación entre contenedores en el mismo host.host: Red que permite que los contenedores compartan la red del host (ojo con la seguridad, porque los contenedores pueden ver la red del host anfitrión).overlay: Red que permite la comunicación entre contenedores en diferentes hosts.macvlan: Red que permite asignar una dirección MAC a un contenedor y que se comporte como un dispositivo físico en la red.none: Sin red, el contenedor no tendrá acceso a la red.
Lo más común es usar el driver bridge para la mayoría de los casos, aunque para cargas distribuidas, podemos usar el driver overlay.
Listar redes
Podemos listar las redes que tenemos en nuestro sistema con el comando docker network ls:
docker network ls
Inspeccionar una red
Podemos inspeccionar una red con el comando docker network inspect:
docker network inspect mi-red
Conectar un contenedor a una red
Para conectar un contenedor a una red, podemos usar la opción --network al crear el contenedor:
docker run -d --name mi-contenedor --network mi-red nginx
Aunque también podemos conectar un contenedor a una red (ambos existentes previamente) con el comando docker network connect:
docker network connect mi-red mi-contenedor
Desconectar un contenedor de una red
Para desconectar un contenedor de una red, podemos usar el comando docker network disconnect:
docker network disconnect mi-red mi-contenedor
Eliminar una red
Para eliminar una red, podemos usar el comando docker network rm:
docker network rm mi-red
Con esto, ya tenemos una idea de cómo funcionan las redes en Docker y cómo podemos conectar contenedores entre sí o aislarlos unos de otros.
- Lista de vídeos en Youtube: Curso de Docker
