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