L'inconvénient de l'utilisation docker exec
est qu'elle nécessite un conteneur en cours d'exécution , elle docker inspect -f
peut donc être pratique si vous n'êtes pas sûr qu'un conteneur est en cours d'exécution.
Exemple 1. Génère une liste de variables d'environnement séparées par des espaces dans le conteneur spécifié:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
la sortie ressemblera à ceci:
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
Exemple n ° 2. Sortez chaque variable d'environnement sur une nouvelle ligne et grep
les éléments nécessaires, par exemple, les paramètres du conteneur mysql pourraient être récupérés comme ceci:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
affichera:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
Exemple n ° 3. Modifions l'exemple ci-dessus pour obtenir une sortie conviviale bash qui peut être directement utilisée dans vos scripts:
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
affichera:
export MYSQL_PASSWORD=secret
export MYSQL_ROOT_PASSWORD=supersecret
export MYSQL_USER=demo
export MYSQL_DATABASE=demodb
export MYSQL_MAJOR=5.5
export MYSQL_VERSION=5.5.52
Si vous souhaitez approfondir, accédez à la documentation du package texte / modèle de Go avec tous les détails du format.