docker images

命令

docker images

描述

docker images 的核心功能是输出当前宿主机上的image镜像列表。

镜像是容器的只读层,docker使用镜像来创建容器,新的数据在只读层上添加一个读写层,来组成可运行的容器,该容器也可以commit新的镜像。

帮助

[root@ceph0 ~]# 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

选项

  • -a, –all=false 列出所有镜像包含父镜像

–digests 显示完成的64位的sha256 images ID,默认只显示前12位

  • -f, –filter=[] 设置输出结果过滤条件,格式是“key=value”形式。如果有多个条件,可以多次指定,例如:–filter “foo=bar” –filter “bif=baz”。 当前支持的过滤条件如下
    • dangling (boolean - true or false)
    • label (label= or label==)
    • before ([:], or <image@digest>) 在给定镜像创建之前创建的镜像
    • since ([:], or <image@digest>) - 在给定镜像创建之后创建的镜像
    • reference (pattern of an image reference) - 使用正则进行匹配

–format string 显示信息指定格式,可以输出json格式的信息

  • –no-trunc=false 显示所有因内容过长而省略的部分

  • -q, –quiet 只显示镜像的ID一列信息

示例

  • 显示镜像列表 ``` $ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

77af4d6b9913 19 hours ago 1.089 GB committ latest b6fa739cedf5 19 hours ago 1.089 GB 78a85c484f71 19 hours ago 1.089 GB docker latest 30557a29d5ab 20 hours ago 1.089 GB 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 sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182 19 hours ago 1.089 GB committest latest sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f 19 hours ago 1.089 GB sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921 19 hours ago 1.089 GB docker latest sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4 20 hours ago 1.089 GB sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5 20 hours ago 1.089 GB sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b 22 hours ago 1.082 GB sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a 23 hours ago 1.089 GB tryout latest sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074 23 hours ago 131.5 MB sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df 24 hours ago 1.089 GB ``` - 显示镜像的sha256值 ``` $ docker images --digests REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE localhost:5000/test/busybox sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB ``` 在registry v2版本后支持push/pull时使用sha256的digest作为镜像,也可以在Dockerfile中使用。 - filter过滤没有tag的镜像 这些镜像没有仓库和TAG,他们是完整的镜像不是中间layer。 当指定镜像ID删除其repo:tag时就会出现这种情况,系统会保留为:的形式。 通过使用这个标记可以批量删除没有repo:tag的镜像列表。 ``` $ docker images --filter "dangling=true" REPOSITORY TAG IMAGE ID CREATED SIZE 8abc22fbb042 4 weeks ago 0 B 48e5f45168b9 4 weeks ago 2.489 MB bf747efa0e2f 4 weeks ago 0 B 980fe10e5736 12 weeks ago 101.4 MB dea752e4e117 12 weeks ago 101.4 MB 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,使用冒号:分割 ```shell $ docker images --format "{{.ID}}: {{.Repository}}" 77af4d6b9913: b6fa739cedf5: committ 78a85c484f71: 30557a29d5ab: docker 5ed6274db6ce: 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 b6fa739cedf5 committ latest 78a85c484f71 30557a29d5ab docker latest 5ed6274db6ce 746b819f315e postgres 9 746b819f315e postgres 9.3 746b819f315e postgres 9.3.5 746b819f315e postgres latest ```