Lo svantaggio dell'utilizzo docker exec
è che richiede un contenitore in esecuzione , quindi docker inspect -f
potrebbe essere utile se non sei sicuro che un contenitore sia in esecuzione.
Esempio 1. Produce un elenco di variabili di ambiente separate da spazi nel contenitore specificato:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
l'output sarà simile a questo:
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
Esempio n. 2. Visualizza ogni variabile env su una nuova riga e grep
gli elementi necessari, ad esempio, le impostazioni del contenitore mysql potrebbero essere recuperate in questo modo:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
produrrà:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
Esempio n. 3. Modifichiamo l'esempio sopra per ottenere un output amichevole di bash che può essere utilizzato direttamente nei tuoi script:
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
produrrà:
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
Se vuoi approfondire, vai alla documentazione del pacchetto di testo / modello di Go con tutti i dettagli del formato.