inspect

使い方: docker inspect [オプション] コンテナ|イメージ|タスク [コンテナ|イメージ|タスク...]

コンテナあるいはイメージかタスクの低レベル情報を表示

  -f, --format=""              指定する go テンプレートを使い、出力を整形
  --help                       使い方を表示
  --type=container|image|task  JSON を返すイメージまたはコンテナの種類を指定
                               値は「イメージ」か「コンテナ」か「タスク」
  -s, --size                   種類がコンテナの場合、合計ファイルサイズを表示

デフォルトは、全ての結果を JSON 配列で表示します。フォーマットを指定した場合は、それぞれのテンプレートに従って結果を表示します。

デフォルトは、全ての結果を JSON 配列で表示します。コンテナとイメージが同じ名前を持つ場合は、タイプを指定しなければコンテナの JSON を返します。フォーマットを指定した場合は、それぞれのテンプレートに従って結果を表示します。

フォーマットの詳細については、Go 言語の text/template パッケージの説明をご覧ください。

インスタンスの IP アドレスを取得

ほとんどの場合、JSON の適切そのままの手法でフィールドから取得できます。

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID

インスタンスの MAC アドレスを取得:

ほとんどの場合、JSON の適切そのままの手法でフィールドから取得できます。

$ 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

設定を取得する:

.Field 構文は JSON データを含む場合に使えませんが、テンプレート言語のカスタム json であれば利用可能です。 .config セクションは複雑な JSON オブジェクトですが、JSON 全体を取り込んでから、 json を使って設定オブジェクトを JSON に変換します。

$ docker inspect --format='{{json .config}}' $INSTANCE_ID