Saltar a contenido

Variables de Entorno

Las variables de entorno del contenedor se agregan al contenedor durante su creación, mediante la opción -e.

Valores fijos

La primera opción es asignar los valores a las variables de entorno durante la orden de creación del contenedor:

Crear contenedor - con variable entorno
docker create -e VARIABLE=valor  nombre_imagen
Crear contenedor - con variable entorno
podman create -e VARIABLE=valor  nombre_imagen

De usarse varias variables de entorno se usa la opción -e para separlas:

Crear contenedor - con varias variables entorno
docker create -e VARIABLE_1=valor_1 -e VARIABLE_2=valor_2 nombre_imagen
Crear contenedor - con varias variables entorno
podman create -e VARIABLE_1=valor_1 -e VARIABLE_2=valor_2 nombre_imagen

Las variables de entorno requeridas por cada imagen se indican en la página proveedora de la descarga.

Múltiples lineas de la teminal

Para repartir las instrucciones de la terminal en varios renglones caa una se recurre al uso de barras invertidas (\).

Crear contenedor - con varias variables entorno
docker create \
-e VARIABLE_1=valor_1 \
-e VARIABLE_2=valor_2 \ 
nombre_imagen
Crear contenedor - con varias variables entorno
podman create \
-e VARIABLE_1=valor_1 \
-e VARIABLE_2=valor_2 \ 
nombre_imagen

Ejemplo: MongoDB con usuario y contraseña

En el ejemplo se hace un contenedor de MongoDB (base de datos no relacional) al que se le asigna nombre de usuario y contraseña internos para su consulta:

MongoDB - con usuario y contraseña
docker create  \
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
--name mongo_admin  mongo 
MongoDB - con usuario y contraseña
podman create  \
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
--name mongo_admin  mongo 

Variables

Los valores necesarios se pueden pasar creando variables desde la terminal, antes de crear el contenedor.

Variables - crear
# creacion 
VARIABLE=valor

entonces el valor se asigna anteponiendo el símbolo $a cada variable:

Crear contenedor - con variable
docker create -e VARIABLE=$VARIABLE  nombre_imagen
Crear contenedor - con variable
podman create -e VARIABLE=$VARIABLE  nombre_imagen

El valor de las variables se verifica con el comando echo

Variables - consultar
# consulta
echo $VARIABLE
echo ${VARIABLE}

Variables de entorno

Con el uso de variables de entorno se evita el tener que asignar valor a cada variable del contenedor.

Para crear las variables de entorno en Bash se usa el comando export:

Variables de entorno - crear
# creacion
export VARIABLE_1=valor_1
export VARIABLE_2=valor_2

y al crear el contenedor ya no es necesario hacer la asignación, sino que con enumerar las variables alcanza:

Crear contenedor - con variables de entorno
docker create -e VARIABLE_1 -e VARIABLE_2  nombre_imagen
Crear contenedor - con variables de entorno
podman create -e VARIABLE_1 -e VARIABLE_2  nombre_imagen

Comando history

El comando history permite conocer el historial de comandos previos de Bash. Por este motivo hay que evitar asignar los valores de variables sensibles (por ejemplo: contraseñas) desde la terminal.

Archivos de entorno

Las variables de entorno que necesita el contenedor se pueden guardar en forma de archivo de texto con la extensión .env:

Archivos .env - formato
VARIABLE_1=valor_1 
VARIABLE_2=valor_2 

Cada línea de este archivo representa una variable de entorno.

Gracias a la opción --env-file las variables de entorno se pueden adjuntar todas juntas indicando el nombre de archivo:

Crear contenedor - con variable entorno
docker create --env-file variables.env  nombre_imagen
Crear contenedor - con variable entorno
podman create --env-file variables.env  nombre_imagen

Archivos .env

El archivo con las variables de entorno suele ser llamado simplemente .env.

Referencias

Docker Docs - Set environment variables within your container's environment