format コマンドとログ出力¶
Docker は Go テンプレート を使い、様々なコマンドやログ・ドライバの出力を操作できます。
Docker は基本的な機能群として、操作可能なテンプレートを提供します。以下の例ではすべて docker inspect
コマンドを使っていますが、他の CLI コマンドも --format
フラグを持ち、多くの CLI コマンドリファレンス中でも、出力形式をカスタマイスする例があります。
重要
--format
フラグの使用時は、シェル環境で見えるようにする必要があります。 Posix シェル内では、シングルクォートを扱って実行できます。
$ docker inspect --format '{{join .Args " , "}}'
あるいは、 Windows シェル(たとえば PowerShell)では、シングルクォートが必要ですが、以下のようにパラメータ内のダブルクォートをエスケープします。
$ docker inspect --format '{{join .Args \" , \"}}'
Join¶
join
連結子は1行の中で要素を一覧表示します。セパレータはリスト中の各要素を分割します。
$ docker inspect --format '{{join .Args " , "}}' container
table¶
table
は、どのフィールドを表示したいか指定します。
$ docker image list --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"
json¶
json
は要素を JSON 文字列としてエンコードします。
$ docker inspect --format '{{json .Mounts}}' container
Lower¶
lower
は文字列を小文字に変換して表示します。
$ docker inspect --format "{{lower .Name}}" container
split¶
split
は文字列をセパレータの文字列で分割して表示します。
$ docker inspect --format '{{split .Image ":"}}'
title¶
title
は行の初めの文字列を大文字に変化して表示します。
$ docker inspect --format "{{title .Name}}" container
upper¶
upper
は文字列をすべて大文字に変換して表示します。
$ docker inspect --format "{{upper .Name}}" container
println¶
println
は各値を新しい列に表示します。
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{println .IPAddress}}{{end}}' container
ヒント
どのようなデータを表示可能かどうか調べるためには、全ての内容を json として表示します。
$ docker container ls --format='{{json .}}'
参考
- Format command and log output