- Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
- List images
- Options:
- -a, –all Show all images (default hides intermediate images)
- –digests Show digests
- -f, –filter value Filter output based on conditions provided (default [])
- – dangling=(true|false)
- – label=<key> or label=<key>=<value>
- – before=(<image-name>[:tag]|<image-id>|<image@digest>)
- – since=(<image-name>[:tag]|<image-id>|<image@digest>)
- –format string Pretty-print images using a Go template
- –help Print usage
- –no-trunc Don’t truncate output
- -q, –quiet Only show numeric IDs
默认下docker images显示所有顶层的镜像,它们的仓库,tag和它们的大小。
docker镜像有中间数据层来提高可重用性,减小硬盘占用和通过允许每一个步骤缓存来加速docker build。这些中间层默认不显示。
SIZE列显示的是该镜像和其所有父镜像累积的空间大小。这也是在Docker save镜像时创建的Tar文件的内容使用的磁盘空间。
如果一个镜像有多个存储库名称或tag,将会列出多次。
列出最近创建的镜像
- $ 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
基于名称和tag列出镜像
docker images命令接受一个可选的[REPOSITORY[:TAG]]参数来限制列出匹配参数的镜像。如果只指定存储库名称没有指定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都提供了,只列出出匹配repository和tag的镜像。例如:
- $ 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
列出镜像digests
使用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
过滤
过滤标志-f or –filter格式为key=value。如果超过一个过滤,那么就传递多个标志[如–filter “foo=bar” –filter “bif=baz”]。
目前支持的过滤有:
无tag镜像(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
这会显示无tag镜像。当新构建的镜像占用这个镜像ID的repo:tag时,会出现这些图像,将其保留为:或untagged。可以使用如下命令批量删除这类镜像:
- $ docker rmi $(docker images -f "dangling=true" -q)
- 8abc22fbb042
- 48e5f45168b9
- bf747efa0e2f
- 980fe10e5736
- dea752e4e117
- 511136ea3c5a
Labeled镜像
label过滤匹配指定label的镜像。
下面示例列出匹配com.example.version label的镜像。
- $ 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
下面示例列出匹配label名称为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
Before
before过滤出指定镜像之前创建的镜像。例如:
- $ 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
since过滤出指定镜像之后创建的镜像。例如:
- $ 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
使用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
格式
–format选项使用Go模板打印出指定格式的列表。
Go模板的有效占位符如下所示:
当使用–format选项时,images命令输出模板声明的完全相同的数据,或者使用table指令,将包括列标题。
如下显示无列标题的数据:
- $ 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