1. docker images
1.1. 描述
docker images
的显示当前宿主机上的 image 镜像列表。
镜像是容器的只读层,docker 使用镜像来创建容器,新的数据在只读层上添加一个读写层,来组成可运行的容器,该容器也可以使用 docker commit 新的镜像。
1.2. 帮助
$ docker images --help
Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:
-a, --all Show all images (default hides intermediate images)
--digests Show digests
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print images using a Go template
--no-trunc Don't truncate output
-q, --quiet Only show numeric IDs
1.3. 选项
选项 | 描述 |
---|---|
-a, --all=false | 列出所有镜像包含父镜像 |
--digests | 显示完成的64位的 sha256 images ID,默认只显示前12位 |
-f, --filter=[] | 设置输出结果过滤条件,格式是“key=value”形式。如果有多个条件,可以多次指定,例如 --filter "foo=bar" --filter "bif=baz"。 |
--format string | 显示信息指定格式,可以输出 json 格式的信息 |
--no-trunc=false | 显示所有因内容过长而省略的部分 |
-q, --quiet | 只显示镜像的ID一列信息 |
-f, --filter=[] 附件说明:
当前支持的过滤条件如下
- dangling (boolean - true or false)
- label (label=
or label= = ) - before (
[: ], or image@digest) 在给定镜像创建之前创建的镜像 - since (
[: ], or image@digest) - 在给定镜像创建之后创建的镜像 - reference (pattern of an image reference) - 使用正则进行匹配
2. 示例
- 显示镜像列表
$ 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 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
- 精确匹配指定仓库及tag的镜像
$ docker images java:8
REPOSITORY TAG IMAGE ID CREATED SIZE
java 8 308e519aac60 6 days ago 824.5 MB
- 显示镜像列表,只显示ID
[root@ceph0 ~]# docker images -q
31482bc47b57
e41846a619f5
e41846a619f5
b7bcef0eac62
- 显示完整长度的镜像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
- 显示镜像的sha256值
$ docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB
在registry v2版本后支持 push/pull 时使用 sha256 的 digest 作为镜像 TAG,也可以在 Dockerfile 中使用。
- filter 过滤没有 tag 的镜像
这些镜像没有仓库和 TAG 信息 ,他们是完整的镜像不是中间 layer。
当指定镜像 ID 删除其 repo:tag 时就会出现这种情况,系统会保留为
通过使用这个标记可以批量删除没有repo:tag的镜像列表。
$ 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
批量删除untag的镜像
$ docker rmi $(docker images -f "dangling=true" -q)
8abc22fbb042
48e5f45168b9
bf747efa0e2f
980fe10e5736
dea752e4e117
511136ea3c5a
- filter 通过 label 过滤显示镜像
filter 使用 label 可以通过 label 或者 label 及 value 来过滤显示镜像。
例如,过滤 label 的 key 值为 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
过滤 label 的 key 只为 com.example.version,且 value 为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
- filter通过时间进行过滤显示
before和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
过滤显示在某个镜像创建之前创建的镜像
$ 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
过滤显示在某个镜像创建之后创建的镜像
$ 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
- filter 使用 reference 正则过滤
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
例如使用正则匹配
$ 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
- Format 格式输出
--format 参数使用 golang的模板输出,一般是 json 的方式。合法的参数如下
参数 | 描述 |
---|---|
.ID | 镜像ID |
.Repository | 镜像仓库 |
.Tag | 镜像的TAG |
.Digest | 镜像sha256的digest |
.CreatedSince | 镜像创建后经过的时间 |
.CreatedAt | 镜像创建的时间 |
当使用 --format 参数时,列出的镜像信息会使用 go 的模板进行渲染,过滤出指定的数据内容。
例如,显示所有的镜像的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
显示所有镜像的ID,Repository和TAG,并使用tab制表符分割
$ 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