inspect

Usage: docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]

Return low-level information on a container or image

  -f, --format=""         Format the output using the given go template
  --help=false            Print usage
  --type=container|image  Return JSON for specified type, permissible
                          values are "image" or "container"
  -s, --size=false        Display total file sizes if the type is container

デフォルトは、全ての結果を 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='{{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