使用の欠点docker exec
は、実行中のコンテナが必要になるためdocker inspect -f
、コンテナが実行されているかどうか不明な場合に便利です。
例1。指定されたコンテナのスペースで区切られた環境変数のリストを出力します。
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{$value}} {{end}}' container_name
出力は次のようになります。
ENV_VAR1=value1 ENV_VAR2=value2 ENV_VAR3=value3
例2。各env varを新しい行とgrep
必要な項目に出力します。たとえば、mysqlコンテナーの設定は次のように取得できます。
docker inspect -f \
'{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' \
container_name | grep MYSQL_
出力されます:
MYSQL_PASSWORD=secret
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_USER=demo
MYSQL_DATABASE=demodb
MYSQL_MAJOR=5.5
MYSQL_VERSION=5.5.52
例#3。上記の例を変更して、スクリプトで直接使用できるbashフレンドリーな出力を取得します。
docker inspect -f \
'{{range $index, $value := .Config.Env}}export {{$value}}{{println}}{{end}}' \
container_name | grep MYSQL
出力されます:
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
さらに詳しく知りたい場合は、フォーマットの詳細がすべて記載されたGoのテキスト/テンプレートパッケージのドキュメントにアクセスしてください。