Saltar al contenido principal

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

Curso de Docker. Redes

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.


Volver al índice