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 ([:], undefined or image@digest) 在给定镜像创建之前创建的镜像
  • since ([:], undefined 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
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-03-13 11:28:02

results matching ""

    No results matching ""