Définir des variables d'environnement pour le processus exec
Dans cette étape, vous apprendrez comment définir des variables d'environnement spécifiquement pour la commande exécutée avec docker exec
. Cela vous permet de transmettre des configurations ou d'autres informations au processus s'exécutant dans le conteneur sans modifier son environnement de manière permanente.
Nous continuerons à utiliser le conteneur ubuntu
en cours d'exécution des étapes précédentes. S'il n'est pas actif, démarrez-le avec :
docker run -d ubuntu:latest sleep infinity
Récupérez l'ID du conteneur ubuntu
en cours d'exécution avec docker ps
:
docker ps
Maintenant, exécutons une commande dans le conteneur tout en définissant une variable d'environnement pour cette exécution spécifique. Nous utiliserons la commande printenv
pour afficher les variables d'environnement. Remplacez <container_id>
par l'ID de votre conteneur.
docker exec -e MY_VARIABLE="Hello from LabEx" MY_VARIABLE < container_id > printenv
Examinons la nouvelle option :
-e MY_VARIABLE="Hello from LabEx"
: Cette option définit une variable d'environnement nommée MY_VARIABLE
avec la valeur "Hello from LabEx"
pour la commande printenv
en cours d'exécution.
Vous devriez voir la sortie Hello from LabEx
s'afficher dans votre terminal, confirmant que la variable d'environnement a bien été définie pour le processus printenv
.
Pour démontrer que cette variable n'est définie que pour le processus exec
et non pour le processus principal du conteneur, exécutons à nouveau printenv MY_VARIABLE
sans l'option -e
:
docker exec MY_VARIABLE < container_id > printenv
Cette fois, vous ne devriez voir aucune sortie, ou potentiellement une erreur indiquant que la variable n'est pas définie. Cela prouve que la variable d'environnement n'était disponible que pour la commande exécutée avec le flag -e
.
La définition de variables d'environnement avec docker exec -e
est un moyen pratique de transmettre des configurations dynamiques aux processus s'exécutant dans vos conteneurs.