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 の基本コマンド