docker inspect¶
補足説明¶
docker inspect は、 Docker によって管理されている構築物の詳細情報を表示します。
デフォルトでは、 docker inspect
は結果を JSON 配列で表示します。
コマンドの使用例は、以下の 使用例のセクション をご覧ください。
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
指定した Go テンプレートを使って、出力を整える |
|
|
タイプがコンテナであれば、合計ファイル容量を表示 |
|
|
特定のタイプを JSON で返す |
使用例¶
インスタンスの IP アドレスを取得¶
多くの部分は、JSON からあらゆるフィールドを、ほとんど一般的な手法で 取得できます。
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
インスタンスの MAC アドレスを取得¶
$ docker inspect '{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
インスタンス用ログのパスを取得¶
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
タスクのイメージ名を取得¶
$ docker inspect --format='{{.Container.Spec.Image}}' $INSTANCE_ID
バインドしているポート一覧を表示¶
配列の中をループして、割り当てられている結果を簡単な文字で出力します。
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
特定のポートに対する割り当てを探す¶
.Field
構文は数字で始まるフィールド名で使えませんが、テンプレート言語の index
ファンクションでは利用できます。.NetworkSettings.Prots
セクションには、内部と外部にあるアドレス/ポートのオブジェクトに対する割り当てリストを含みます。index
0 は、そのオブジェクトの1番めの項目です。 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