Pasar variables de entorno al contenedor en Docker
-
Use las etiquetas
-e
y-env
Pase variables de entorno al contenedor en Docker - Use el comando Exportar para pasar variables de entorno al contenedor en Docker
-
Use un archivo
-env
para pasar variables de entorno al contenedor en Docker
Este tutorial presentará los métodos para pasar variables de entorno al contenedor en Docker.
Use las etiquetas -e
y -env
Pase variables de entorno al contenedor en Docker
Comenzaremos viendo cómo podemos crear variables ambientales y pasarlas a un contenedor. Comenzaremos extrayendo la imagen que usaremos del registro de Docker usando el siguiente comando.
$ docker pull ubuntu~$ docker pull ubuntu
Producción :
Using default tag: latest
latest: Pulling from library/ubuntu
08c01a0ec47e: Pull complete
Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Usaremos la etiqueta -e
, la forma abreviada de -env
, cuyo uso se puede verificar ejecutando el comando docker run -help
en la terminal. Este argumento nos permite crear múltiples pares clave-valor de variables de entorno para pasar al contenedor.
Así es como podemos crear una sola variable de entorno y pasarla a un contenedor que hemos creado usando la imagen de Ubuntu.
$ docker run -it -e DEMO=sample_variable ubuntu bash
Producción :
root@3a20bc21d3c8:/# echo $DEMO
sample_variable
También podemos usar múltiples etiquetas de -e
para crear variables ambientales simplemente encadenándolas junto con el comando de ejecución mientras creamos un nuevo contenedor, como se muestra a continuación.
$ docker run -it -e DEMO1=sample_variable1 -e DEMO2=sample_variable2 ubuntu bash
Una vez que hayamos pasado estas dos variables ambientales, podemos acceder a sus valores usando los comandos a continuación. Hemos nombrado a la variable uno como DEMO1
, y podemos acceder a su valor a continuación.
root@9eee00d7ab01:/# echo $DEMO1
Producción :
sample_variable1
De manera similar, también podemos imprimir la variable dos, como se muestra aquí.
root@9eee00d7ab01:/# echo $DEMO2
Producción :
sample_variable2
Use el comando Exportar para pasar variables de entorno al contenedor en Docker
Alternativamente, también podemos evitar el encadenamiento de variables ambientales usando el comando de exportación. Este comando es una herramienta de utilidad integrada para el shell bash de Linux que también se puede usar con WSL.
Nos permite crear y pasar variables de entorno a procesos secundarios sin afectar las variables preexistentes. Comenzaremos creando las variables de entorno, como se muestra a continuación.
isaac@DESKTOP-HV44HT6:~$ export MYSQL_USER=isaactonyloi
isaac@DESKTOP-HV44HT6:~$ export MYSQL_PASS=fakepassword
Una vez que hemos creado las variables ambientales, podemos pasarlas a un contenedor que estamos creando, como se muestra a continuación.
$ docker run -it -e MYSQL_USER -e MYSQL_PASS ubuntu bash
Luego podemos acceder y mostrar los valores respectivos de las variables usando el comando echo como se muestra a continuación.
root@5b4dae06932d:/# echo $MYSQL_USER
isaactonyloi
Use un archivo -env
para pasar variables de entorno al contenedor en Docker
Un mejor enfoque que le brinda más espacio para depurar es usar un archivo de descomposición de Docker en su lugar. Esto significa que ahora no tenemos que pasar variables de entorno directamente al iniciar nuestro contenedor docker.
Este método significa que tenemos que crear un archivo externo .env
que contendrá nuestras variables ambientales. Podemos crear este archivo en nuestro directorio de inicio usando el siguiente comando de Linux.
Este comando opta por el editor vi de Linux, creando nuestra lista de variables de entorno.
$ vi env.list
Dentro del editor vi, crearemos las variables de entorno como pares clave-valor con las claves en mayúsculas y sus respectivos valores en minúsculas. Saldremos guardando la variable pulsando los dos puntos completos y tecleando el comando wq
.
MYSQL_USER=isaactonyloi
MYSQL_PASS=fakepassword
wq
Podemos usar el comando ls
para confirmar que el archivo env.list
se ha guardado correctamente. Esto debería devolver una lista de archivos en ese directorio con env.list
entre los enumerados.
También podemos usar el comando cat
para ver las entradas en esa lista, como se muestra a continuación.
$ cat env.list
Producción :
MYSQL_USER=isaactonyloi
MYSQL_PASS=fakepassword
Una vez que tengamos eso en su lugar, ahora podemos ejecutar la imagen de ubuntu para crear el nuevo contenedor y especificar la ruta donde hemos almacenado las variables para pasarlas.
El archivo env.list
se almacena en el directorio de inicio en este ejemplo. Por lo tanto, si el suyo está dentro de otro directorio, su ruta podría verse diferente.
Deberíamos ejecutar el comando para pasar estas variables ambientales al nuevo contenedor.
$ docker run -it --env-file ./env.list ubuntu bash
Podemos verificar que hemos pasado con éxito las variables de entorno al contenedor imprimiendo las variables como se muestra a continuación.
/# echo $MYSQL_USER
/# echo $MYSQL_PASS
Producción :
Isaactonyloi
fakepassword
En lugar de los métodos anteriores, podemos crear un archivo de plantilla que contenga todas las variables ambientales que queremos pasar. Esto nos permite anular fácilmente las variables de entorno creadas en este archivo si deseamos realizar algún cambio.
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn