🌍 Variables de Entorno en Docker
Hasta ahora hemos aprendido a ejecutar contenedores utilizando docker run, publicando puertos y ejecutándolos en segundo plano.
Sin embargo, una de las características más importantes de Docker es la posibilidad de configurar el comportamiento de una aplicación mediante variables de entorno, sin necesidad de modificar el código fuente.
En esta clase veremos cómo inyectar esas variables al iniciar un contenedor y por qué son una práctica fundamental en cualquier aplicación desplegada con Docker.
📦 Recordando las imágenes disponibles
Antes de ejecutar un contenedor, podemos consultar las imágenes que tenemos almacenadas localmente utilizando:
docker images
Este comando muestra tanto las imágenes descargadas como las creadas localmente durante el curso.
En el ejemplo se utiliza la imagen de la aplicación Node.js creada anteriormente para demostrar cómo modificar su configuración mediante variables de entorno.
🚀 Pasando variables de entorno con -e
Docker permite definir variables de entorno directamente al ejecutar un contenedor mediante la opción -e.
Por ejemplo:
docker run \
-d \
-p 5005:3000 \
-e SALUDO="Hola Midus" \
nombre-imagen
En este caso se está definiendo una variable llamada SALUDO, que la aplicación utilizará para generar el mensaje mostrado al usuario.
✨ Modificando el comportamiento sin tocar el código
La aplicación ya estaba preparada para leer el saludo desde una variable de entorno.
Al ejecutar el contenedor con un nuevo valor, el resultado cambia automáticamente.
Antes aparecía el mensaje por defecto.
Después de pasar la variable mediante -e, la aplicación responde utilizando el nuevo saludo configurado.
Este es uno de los grandes beneficios de las variables de entorno: la configuración queda completamente separada del código de la aplicación.
📄 Utilizando un archivo de variables
Cuando una aplicación necesita muchas variables de entorno, escribir varias opciones -e puede resultar incómodo.
Docker también permite cargarlas desde un archivo utilizando:
docker run --env-file .env nombre-imagen
El archivo contiene todas las variables necesarias y Docker las inyecta automáticamente al iniciar el contenedor.
Esta opción resulta mucho más cómoda para proyectos reales donde existen múltiples parámetros de configuración.
🎯 ¿Por qué son tan importantes?
Las variables de entorno permiten que una misma imagen Docker pueda utilizarse en distintos entornos sin necesidad de reconstruirla.
Por ejemplo, es habitual configurar mediante variables:
- Puertos
- Mensajes o textos configurables
- Credenciales
- URLs de APIs
- Configuración de bases de datos
- Claves de acceso
Gracias a ello, la aplicación puede adaptarse fácilmente a desarrollo, pruebas o producción utilizando exactamente la misma imagen.
📌 Ideas clave de esta clase
Quédate con estos conceptos:
docker imagespermite consultar las imágenes disponibles.- Las variables de entorno se pasan con la opción
-e. - Permiten modificar la configuración sin cambiar el código.
- Una aplicación puede leer esas variables al iniciarse.
- Para múltiples variables es recomendable utilizar
--env-file. - Separar configuración y código es una buena práctica fundamental en Docker.
🚀 Lo siguiente
Ahora que ya sabes cómo configurar un contenedor mediante variables de entorno, podrás ejecutar una misma imagen con distintos comportamientos dependiendo del entorno donde la despliegues.
Es una de las bases para crear aplicaciones portables y fáciles de configurar utilizando Docker.