Agregar un modo de red en Docker Compose

  1. Recopilar información de red en Docker
  2. Configurar el modo de red en Docker Compose
  3. Configurar el modo de red en Docker Swarm
Agregar un modo de red en Docker Compose

De forma predeterminada, Docker Compose crea una sola red en nuestra(s) aplicación(es) y agrega cada contenedor allí como un servicio. Cada contenedor en la red puede ser accedido y encontrado por contenedores en una sola red.

Podemos configurar nuestras redes definiendo un modo de red en Docker Compose. Este artículo discutirá cómo podemos definir y configurar nuestra red usando el modo de red en Docker Compose.

Recopilar información de red en Docker

Si deseamos configurar un modo de red que pase por un contenedor o servicio específico, primero necesitaremos recopilar información adicional. Ejecutar el comando docker network ls nos permitirá enumerar nuestras redes Docker actuales.

Debería verse similar a la siguiente salida a continuación.

Producción :

NETWORK ID          NAME                         DRIVER
17cc61428fef        bridge                       bridge
098522f7fce0        sample_default               bridge
1ce3c472afc6        test_default                 bridge
8fd07e456e6c        host                         host
3b5787919641        none                         null

Este comando será útil si debemos conocer el nombre o ID de nuestro contenedor, servicio o red a través del comando anterior presentado anteriormente.

Configurar el modo de red en Docker Compose

En Docker Compose versión 3, podemos usar el modo de red en nuestro archivo YAML proporcionando el parámetro network_mode: y su valor. Por tanto, asegúrate de especificar la versión de Docker compose que estamos utilizando con el parámetro version: y el valor 3 o 3.0.

Ejemplo:

version: "3"
services:
  app:
    network_mode: "host"

En el ejemplo anterior, usamos el ejemplo host como nuestro modo de red, pero podemos especificar un contenedor o un servicio en su lugar. De la documentación oficial de Docker, aquí están los múltiples valores que podemos usar al definir el modo de red del servicio:

Ejemplo:

network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

Dado que recopilamos información anteriormente, podemos usar el nombre o ID de la red al definir nuestro modo de red.

Ejemplo:

network_mode: "container:sample_default"
network_mode: "container:1ce3c472afc6"

Configurar el modo de red en Docker Swarm

Una colección de máquinas físicas o virtuales que ejecutan la aplicación Docker se denomina Docker Swarm. Una solución de orquestación de contenedores llamada Docker Swarm permite a los usuarios controlar muchos contenedores distribuidos en varias máquinas host.

Una vez que se ha agrupado un grupo de máquinas, aún podemos ejecutar los comandos de Docker a los que estamos acostumbrados, pero los dispositivos en nuestro clúster ahora los ejecutarán.

Desafortunadamente, Docker Compose y Swarm no combinan bien. Entonces, en lugar de usar el parámetro network_mode, necesitaremos definir la red manualmente usando el parámetro networks, que debería verse así.

Ejemplo:

version: "3.0"
services:
    app:
        networks:
            - host

networks:
    host:
        name: [Your Network Mode Value]
        external: true
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - Docker Compose