docker inspect

説明

Docker オブジェクト上の ローレベル(low-level) 情報を返します。

使い方

$ 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 '{{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

親コマンド

コマンド 説明
docker Docker CLI の基本コマンド