docker inspect
説明
Docker オブジェクトに対する低レベル情報を返します。
利用方法
$ docker inspect [OPTIONS] NAME|ID [NAME|ID...]
追加説明
Docker inspect は Docker が制御する構造の詳細情報を提供します。
docker inspect
はデフォルトで JSON 配列による結果を返します。
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
名前/省略形 | デフォルト | 説明 |
--format , -f |
Go 言語テンプレートを使って出力をフォーマットします。 | |
--size , -s |
オブジェクトタイプがコンテナーである場合に、総ファイルサイズを表示します。 | |
--type |
指定されたオブジェクトタイプに対する JSON データを返します。 |
利用例
インスタンスの IP アドレス取得
JSON 形式内の各データは、そのほとんどをごく普通の方法で取り出すことができます。
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
インスタンスの MAC アドレス取得
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
インスタンスのログパス取得
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
インスタンスのイメージ名取得
$ docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
ポートバインドの一覧取得
配列やマップをループして、その結果から単純なテキスト出力を得ることができます。
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
指定ポートのマッピング取得
.Field
を利用する文法は、この項目が数字で始まる場合には正常に動作しませんが、テンプレートのindex
機能では動作します。
.NetworkSettings.Ports
というセクションは、内部ポートから外部アドレスまたはポートのオブジェクト一覧へのマッピング一覧です。
公開ポートの数値を取得するには、指定するポートマップの中から検索を行うindex
を利用します。
index
0 に、その結果内にある初めのオブジェクトがあります。
そしてHostPort
項目を調べれば、公開アドレスを得ることができます。
$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
JSON 書式のサブセクション取得
取得する項目が、他の項目を含んだ構造になっている場合、デフォルトで内部データは Go 言語スタイルのダンプ形式で取得します。
Docker にはテンプレート関数json
があり、これを実行すると JSON 書式により結果を取得できます。
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID
上位コマンド
コマンド | 説明 |
---|---|
docker | Docker CLI の基本コマンド |