docker images
読む時間の目安: 6 分
説明
イメージを一覧表示します。
利用方法
$ docker images [オプション] [REPOSITORY[:TAG]]
追加説明
docker images
はデフォルトで、すべてのトップレベルイメージ、そのリポジトリとタグ、そのサイズを表示します。
Docker イメージには中間レイヤーが含まれるため、ディスク容量を必要としますが再利用性は増えます。
したがってdocker build
の各処理ステップにおけるキャッシュの利用によって、処理速度が向上します。
そのような中間レイヤーはデフォルトでは表示されません。
SIZE
はイメージと親イメージによって占有される合計サイズです。
これはまた、docker save
によりイメージを生成した際の tar ファイルのディスク容量でもあります。
イメージが複数のリポジトリ名やタグを持っている場合は、一覧に複数回表示されます。
その 1 つのイメージ(IMAGE ID
が一致するもの)のSIZE
欄に同一サイズが示されます。
本コマンドの利用例については、以下に示す 利用例の節 を参照してください。
オプション
名前/省略形 | デフォルト | 説明 |
--all , -a |
イメージをすべて表示します。(デフォルトでは中間イメージが表示されません。) | |
--digests |
ダイジェスト値を表示します。 | |
--filter , -f |
指定された条件に基づいてフィルター検索を行います。 | |
--format |
Go 言語テンプレートを使って出力をフォーマットします。 | |
--no-trunc |
詳細出力を行います。 | |
--quiet , -q |
イメージ 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
コマンドには任意に指定できる[REPOSITORY[:TAG]]
引数があります。
この引数に合致するものだけが一覧出力されます。
REPOSITORY
だけ指定しTAG
を指定しなかった場合、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
[REPOSITORY[:TAG]]
の値は完全に一致するものを指定しなければなりません。
たとえばdocker images jav
を実行しても、イメージ名java
には一致しません。
REPOSITORY
とTAG
の両方を指定した場合、リポジトリとタグが一致したイメージのみが一覧表示されます。
「java」リポジトリにあるローカルイメージで「8」というタグを持つものを検索するには、以下のようにします。
$ docker images java:8
REPOSITORY TAG IMAGE ID CREATED SIZE
java 8 308e519aac60 6 days ago 824.5 MB
REPOSITORY[:TAG]
に一致するものがなければ、一覧には何も表示されません。
$ 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
イメージダイジェストの一覧表示
イメージ仕様の v2 またはそれ以降を利用するイメージには、digest
(ダイジェスト)と呼ぶ連想識別子(content-addressable identifier)があります。
イメージ生成に用いられた入力内容が変更されていない限り、ダイジェスト値は予測できます。
イメージダイジェストの一覧を表示するには--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
コマンドの出力にイメージダイジェストが表示されます。
pull
の際にダイジェスト値を用いることが可能であり、create
、run
、rmi
といったコマンドにおいてはダイジェスト値を使ってイメージを参照することもできます。
また Dockerfile 内でのFROM
において、イメージを参照するために用いることもできます。
フィルター検索
フィルターフラグ(-f
または --filter
)の指定書式は「キー=値」というものです。
複数のフィルターが必要な場合は、フラグを複数指定します。
(たとえば --filter "foo=bar" --filter "bif=baz"
など。)
現在サポートされているフィルターは以下のとおりです。
- dangling (ブール値 - true または false)
- label (
label=<key>
またはlabel=<key>=<value>
) - before (
<image-name>[:<tag>]
,<image id>
または<image@digest>
) - 指定された ID または参照名より以前に生成されたイメージを検索。 - since (
<image-name>[:<tag>]
,<image id>
または<image@digest>
) - 指定された ID または参照名より以降に生成されたイメージを検索。 - 参照名(イメージ参照のパターン) - 参照名が指定パターンに一致するイメージを検索。
タグづけなしイメージの表示 (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 からrepo:tag
が取り除かれることで発生し、<none>:<none>
やタグなしの状態になります。
コンテナーがイメージをまだ利用している状態で、そのイメージを削除しようとすると、警告メッセージが表示されます。
このフラグを指定して、バッチ処理による削除が可能になります。
つまりdocker rmi ...
と合わせて以下のようにします。
$ docker rmi $(docker images -f "dangling=true" -q)
8abc22fbb042
48e5f45168b9
bf747efa0e2f
980fe10e5736
dea752e4e117
511136ea3c5a
タグづけされていないイメージをまだ利用するコンテナーが存在していたときは、警告が表示されます。
ラベル指定によるイメージの表示
label
フィルターは、イメージが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 または参照名を持つイメージより以前に生成されたイメージのみを表示します。
たとえばはじめに以下のイメージがあったとします。
$ 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
since
のフィルタリング結果は以下です。
$ docker images --filter "since=image3"
REPOSITORY TAG IMAGE ID CREATED SIZE
image1 latest eeae25ada2aa 4 minutes ago 188.3 MB
image2 latest dea752e4e117 9 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 言語テンプレートによるプレースホルダー(placeholder)は以下のとおりです。
プレースホルダー | 内容説明 |
---|---|
.ID |
イメージ ID |
.Repository |
イメージリポジトリ |
.Tag |
イメージタグ |
.Digest |
イメージダイジェスト |
.CreatedSince |
イメージが生成されてからの経過時刻 |
.CreatedAt |
イメージが生成された時刻 |
.Size |
イメージディスクサイズ |
--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
上位コマンド
コマンド | 説明 |
---|---|
docker | Docker CLI の基本コマンド |