Pasando Variables de Entorno a Contenedores Docker
Existen varias maneras de pasar variables de entorno a contenedores Docker, cada una con su propio caso de uso y ventajas. En esta sección, exploraremos los diferentes métodos y proporcionaremos ejemplos para ayudarte a comprender cómo gestionar eficazmente las variables de entorno en tus aplicaciones basadas en Docker.
Usando la Bandera --env o -e
La forma más sencilla de pasar variables de entorno a un contenedor Docker es utilizando la bandera --env o -e al ejecutar el comando docker run. Esto te permite especificar una o más variables de entorno y sus valores correspondientes:
docker run -e MY_VARIABLE=my_value -e ANOTHER_VARIABLE=another_value my-image
Definiendo Variables de Entorno en el Dockerfile
También puedes definir variables de entorno directamente en el Dockerfile utilizando la instrucción ENV. Este enfoque es útil cuando tienes variables de entorno comunes a todas las instancias de tu aplicación contenedorizada:
## Dockerfile
FROM ubuntu:latest
ENV MY_VARIABLE=my_value
ENV ANOTHER_VARIABLE=another_value
## Resto de instrucciones de tu Dockerfile
Al construir la imagen con este Dockerfile, las variables de entorno estarán disponibles dentro de los contenedores resultantes.
Pasando Variables de Entorno desde el Sistema Host
En algunos casos, es posible que desees pasar variables de entorno desde el sistema host (la máquina que ejecuta el demonio Docker) al contenedor. Esto se puede lograr utilizando la misma bandera --env o -e, pero especificando el nombre de la variable sin un valor explícito:
docker run -e MY_VARIABLE -e ANOTHER_VARIABLE my-image
Esto pasará los valores de las variables de entorno MY_VARIABLE y ANOTHER_VARIABLE desde el sistema host al contenedor.
Sobrescribiendo Variables de Entorno
Si defines una variable de entorno tanto en el Dockerfile como en el comando docker run, el valor del comando docker run tendrá prioridad. Esto te permite sobrescribir fácilmente las variables de entorno en tiempo de ejecución, lo que puede ser útil para gestionar diferentes entornos de despliegue o escenarios de prueba.
Al comprender estos diferentes métodos para pasar variables de entorno a contenedores Docker, puedes configurar y gestionar eficazmente el entorno de tiempo de ejecución de tus aplicaciones contenedorizadas, asegurando que sean flexibles, escalables y seguras.