docker images¶
補足説明¶
標準の docker image
は全てのトップ・レベルのイメージと、それらのリポジトリ、タグ、容量を表示します。
Docker イメージは docker build
は各ステップをキャッシュするので、構築速度を向上します。デフォルトでは、これらの中間レイヤを表示しません。
SIZE
(容量)とは、対象のイメージと、その親イメージを累積した容量です。また、 docker save
でイメージを作成していた場合、 Tar ファイル内容のディスク容量です。
イメージ一覧では、複数のリポジトリ名やタグが表示されます。この中で、1つのイメージ( IMAGE ID
が一致し、同一と分かるもの)が使用している SIZE
(容量)が複数表示されたとしても、使っているのは1つだけです(訳者注:イメージの容量は、イメージ ID ごとに共通。つまり、一覧で複数のイメージが 100MB 使っているように見えたとしても、全てのイメージ ID が共通している場合、実際に使用している容量は 100MB だけ)。
コマンドの使用例は、以下の 使用例のセクション をご覧ください。
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
全てのイメージを表示(デフォルトは、中間イメージを非表示) |
|
|
digest 値を表示 |
|
|
指定した状況に基づき、出力をフィルタ |
|
|
Go テンプレートを使い、イメージを整えて表示 |
|
|
出力を |
|
|
イメージ ID のみ表示 |
使用例¶
直近で作成したイメージから一覧表示¶
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 77af4d6b9913 19 hours ago 1.089 GB
committ latest b6fa739cedf5 19 hours ago 1.089 GB
<none> <none> 78a85c484f71 19 hours ago 1.089 GB
docker latest 30557a29d5ab 20 hours ago 1.089 GB
<none> <none> 5ed6274db6ce 24 hours ago 1.089 GB
postgres 9 746b819f315e 4 days ago 213.4 MB
postgres 9.3 746b819f315e 4 days ago 213.4 MB
postgres 9.3.5 746b819f315e 4 days ago 213.4 MB
postgres latest 746b819f315e 4 days ago 213.4 MB
イメージ名とタグで一覧表示¶
docker images
コマンドは、オプションで [リポジトリ[:タグ]]
を指定できます。これはイメージ一覧から条件が一致するものだけ表示します。 リポジトリ
は タグ
を指定しなくても使えますので、 docker images
コマンドで、対象となるリポジトリのイメージを全て表示します。
例えば、「java」リポジトリにあるイメージを表示するには、次のコマンドを実行します。
$ docker images java
REPOSITORY TAG IMAGE ID CREATED SIZE
java 8 308e519aac60 6 days ago 824.5 MB
java 7 493d82594c15 3 months ago 656.3 MB
java latest 2711b1d6f3aa 5 months ago 603.9 MB
[リポジトリ[:タグ]]
値は「完全一致」の必要があります。つまり、 docker images jav
は java
イメージに一致しません。
リポジトリ
と タグ
の両方が指定された場合は、リポジトリとタグが一致するイメージのみ表示します。ローカルにある「java」リポジトリで、タグが「8」のイメージを表示するには、次のように実行します。
$ docker images java:8
REPOSITORY TAG IMAGE ID CREATED SIZE
java 8 308e519aac60 6 days ago 824.5 MB
もし一致する [リポジトリ[:タグ]]
がなければ、何も表示しません。
$ docker images java:0
REPOSITORY TAG IMAGE ID CREATED SIZE
長いイメージ ID で全てを表示¶
$ docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182 19 hours ago 1.089 GB
committest latest sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f 19 hours ago 1.089 GB
<none> <none> sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921 19 hours ago 1.089 GB
docker latest sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4 20 hours ago 1.089 GB
<none> <none> sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5 20 hours ago 1.089 GB
<none> <none> sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b 22 hours ago 1.082 GB
<none> <none> sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a 23 hours ago 1.089 GB
tryout latest sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074 23 hours ago 131.5 MB
<none> <none> sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df 24 hours ago 1.089 GB
イメージの digest 値を表示¶
v2 以降の形式を使うイメージには、 digest
と呼ばれる識別子が割り振られます。イメージ生成後に変更が加えられなければ、digest 値は変更されていないと考えられます。全ての digest 値を表示するには、 --digests
フラグを使います。
$ docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB
2.0 レジストリに対して送信(push) や取得(pull )する場合は、 push
と pull
コマンドの出力にイメージの digest 値も含まれます。digest 値を使っても pull
できます。digest 値が使えるのは create
、 run
、 rmi
の各コマンドと、 Dockerfile のイメージを参照する FROM
でも同様です。
フィルタリング¶
フィルタリング・フラグ( -f
と --filter
)の形式は「key=value」です。複数のフィルタを使う時は、複数のフラグを使います(例: --filter "foo=bar" --filter "bif=baz"
)。
現在サポートされているフィルタ:
dangling(ダングリング;宙ぶらりんな状態)なイメージ (ブール値: true か false )
label(
label=<key>
かlabel=<key>=<value>
)before (
<イメージ名>[:<タグ>], <イメージ ID> または <image@digest>
- 指定した ID もしくはリファレンスよりも前に作成したイメージでフィルタsince (
<イメージ名>[:<タグ>], <イメージ ID> または <image@digest>
- 指定した ID もしくはリファレンスよりも後に作成したイメージでフィルタreference ( イメージ・リファレンスのパターン ) - 指定したパターンに一致するリファレンスで、イメージをフィルタ
タグ付けされていないイメージ(dangling)¶
$ docker images --filter "dangling=true"
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 8abc22fbb042 4 weeks ago 0 B
<none> <none> 48e5f45168b9 4 weeks ago 2.489 MB
<none> <none> bf747efa0e2f 4 weeks ago 0 B
<none> <none> 980fe10e5736 12 weeks ago 101.4 MB
<none> <none> dea752e4e117 12 weeks ago 101.4 MB
<none> <none> 511136ea3c5a 8 months ago 0 B
これはタグ付けされておらず、イメージ・ツリーから離れた(中間レイヤではない)イメージを表示してます。これらのイメージが発生するのは、新しいイメージの構築にあたり、元イメージ ID の リポジトリ:tag
を削除し、 <none>:<none>
もしくはタグ無しのままにしたためです。イメージを削除しようとしても、コンテナが利用中であれば警告が表示されます。バッチ処理でクリーンアップする時に、次のようにフラグが使えます。
docker rmi ...
とは、このように組み合わせられます。
$ docker rmi $(docker images -f "dangling=true" -q)
8abc22fbb042
48e5f45168b9
bf747efa0e2f
980fe10e5736
dea752e4e117
511136ea3c5a
タグ付けされていないイメージでも、何らかのコンテナが使用中であれば、 Docker は警告を表示します。
ラベルを指定してイメージを表示¶
label
フィルタは、 label
そのものが一致するイメージか、ラベルの値に一致する場合に表示します。
次のフィルタは com.example.version
に一致するラベルだけでなく、その値にも適用されます。
$ docker images --filter "label=com.example.version"
REPOSITORY TAG IMAGE ID CREATED SIZE
match-me-1 latest eeae25ada2aa About a minute ago 188.3 MB
match-me-2 latest dea752e4e117 About a minute ago 188.3 MB
次のフィルタは com.example.version
ラベルと 1.0
値に一致するイメージを表示します。
$ docker images --filter "label=com.example.version=1.0"
REPOSITORY TAG IMAGE ID CREATED SIZE
match-me latest 511136ea3c5a About a minute ago 188.3 MB
次の例は、 0.1
値を持つものをフィルタしますが、一致するものが無かったため、何も表示されません。
$ docker images --filter "label=com.example.version=0.1"
REPOSITORY TAG IMAGE ID CREATED SIZE
時間でイメージをフィルタ¶
before
フィルタは指定した ID またはリファレンスよりも前に作成したイメージのみ表示します。例えば、3つのイメージがあるとします。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
image1 latest eeae25ada2aa 4 minutes ago 188.3 MB
image2 latest dea752e4e117 9 minutes ago 188.3 MB
image3 latest 511136ea3c5a 25 minutes ago 188.3 MB
before
を使うフィルタは、次のように指定します。
$ docker images --filter "before=image1"
REPOSITORY TAG IMAGE ID CREATED SIZE
image2 latest dea752e4e117 9 minutes ago 188.3 MB
image3 latest 511136ea3c5a 25 minutes ago 188.3 MB
リファレンスでイメージをフィルタ¶
reference
フィルタは、指定したリファレンスに一致するパターンのイメージのみ表示します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest e02e811dd08f 5 weeks ago 1.09 MB
busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB
busybox musl 733eb3059dce 5 weeks ago 1.21 MB
busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB
reference
を使うフィルタは、次のように指定します。
$ docker images --filter=reference='busy*:*libc'
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB
busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB
複数の reference
を指定すると、 A または B のどちらかに一致します。
$ docker images --filter=reference='busy*:uclibc' --filter=reference='busy*:glibc' REPOSITORY TAG IMAGE ID CREATED SIZE busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB
出力形式¶
フォーマット・オプション( --format
)は Go テンプレートを使いコンテナの出力を見やすくします。
Go テンプレートで有効なプレースホルダは以下の通りです。
プレースホルダ |
説明 |
---|---|
|
イメージ ID |
|
リポジトリ |
|
イメージのタグ |
|
イメージの digest 値 |
|
イメージを作成してからの経過時間 |
|
イメージの作成時間 |
|
イメージ・ディスクの容量 |
--format
オプションの使用時、 image
コマンドはテンプレートで宣言した通りにデータを出力します。あるいは、 table
ディレクティブがあれば列のヘッダも表示するかのどちらかです。
以下の例は ID
と Repository
のエントリをテンプレートで指定します。そして、コロン( :
)区切りで全てのイメージを表示します。
$ docker images --format "{{.ID}}: {{.Repository}}"
77af4d6b9913: <none>
b6fa739cedf5: committ
78a85c484f71: <none>
30557a29d5ab: docker
5ed6274db6ce: <none>
746b819f315e: postgres
746b819f315e: postgres
746b819f315e: postgres
746b819f315e: postgres
リポジトリとタグを表形式で一覧表示するには、次のようにします。
$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
77af4d6b9913 <none> <none>
b6fa739cedf5 committ latest
78a85c484f71 <none> <none>
30557a29d5ab docker latest
5ed6274db6ce <none> <none>
746b819f315e postgres 9
746b819f315e postgres 9.3
746b819f315e postgres 9.3.5
746b819f315e postgres latest