Der Nachteil der Verwendung docker exec
besteht darin, dass ein laufender Container erforderlich ist. docker inspect -f
Dies kann hilfreich sein, wenn Sie nicht sicher sind, ob ein Container ausgeführt wird.
Beispiel 1. Geben Sie eine Liste der durch Leerzeichen getrennten Umgebungsvariablen im angegebenen Container aus:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
Die Ausgabe sieht folgendermaßen aus:
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
Beispiel 2. Geben Sie jede env var in einer neuen Zeile und grep
die benötigten Elemente aus. Beispielsweise können die Einstellungen des MySQL-Containers wie folgt abgerufen werden:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
wird ausgegeben:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
Beispiel 3. Lassen Sie uns das obige Beispiel ändern, um eine bash-freundliche Ausgabe zu erhalten, die direkt in Ihren Skripten verwendet werden kann:
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
wird ausgegeben:
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
Wenn Sie tiefer eintauchen möchten, lesen Sie die Dokumentation zum Text- / Vorlagenpaket von Go mit allen Details des Formats.