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