Agregar un modo de red en Docker Compose
- Recopilar información de red en Docker
- Configurar el modo de red en Docker Compose
- Configurar el modo de red en Docker Swarm
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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn