format コマンドとログ出力

Docker は Go テンプレート を使い、様々なコマンドやログ・ドライバの出力を操作できます。

Docker は基本的な機能群として、操作可能なテンプレートを提供します。以下の例ではすべて docker inspect コマンドを使っていますが、他の CLI コマンドも --format フラグを持ち、多くの CLI コマンドリファレンス中でも、出力形式をカスタマイスする例があります。

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

..lLower turns a string into its lower case representation.

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
https://docs.docker.com/config/formatting/