Kelemahan penggunaan docker exec
adalah membutuhkan wadah yang berjalan , jadidocker inspect -f
mungkin berguna jika Anda tidak yakin wadah sedang berjalan.
Contoh 1. Keluarkan daftar variabel lingkungan yang dipisahkan spasi di penampung yang ditentukan:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
outputnya akan terlihat seperti ini:
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
Contoh # 2. Keluarkan setiap env var pada baris baru dan grep
item yang dibutuhkan, misalnya, pengaturan wadah mysql dapat diambil seperti ini:
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
akan mengeluarkan:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
Contoh # 3. Mari kita ubah contoh di atas untuk mendapatkan keluaran ramah bash yang dapat langsung digunakan dalam skrip Anda:
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
akan mengeluarkan:
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
Jika Anda ingin mempelajari lebih dalam, buka dokumentasi paket teks / template Go dengan semua detail formatnya.