码头工人图像

描述

列出图片

用法

$ docker images [OPTIONS] [REPOSITORY[:TAG]]

扩展说明

默认值docker images将显示所有顶级图像,它们的存储库和标签以及它们的大小。

Docker映像具有中间层,可docker build通过允许缓存每个步骤来提高可重用性,减少磁盘使用并加快速度。这些中间层默认情况下不显示。

SIZE是由图像和所有其父图像所占用的空间累积。这也是docker save映像时创建的Tar文件的内容所使用的磁盘空间。

如果图像具有多个存储库名称或标签,则将多次列出该图像。该单个图像(通过其匹配可识别IMAGE IDSIZE仅用完列出的一次。

有关此命令的示例用法,请参阅下面的示例部分

选项

名称,简写 默认 描述
--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

如果同时提供REPOSITORYTAG,则仅列出与该存储库和标签匹配的图像。要在带有标签“ 8”的“ java”存储库中查找所有本地图像,可以使用:

$ 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。只要用于生成图像的输入不变,摘要值就可以预测。要列出图像摘要值,请使用--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注册表时,pushorpull命令输出包括图像摘要。您可以pull使用摘要值。您还可以在createrunrmi命令中按摘要进行引用,以及FROM在Dockerfile中进行 映像引用。

筛选

过滤标志(-f--filter)的格式为“键=值”。如果有多个过滤器,则传递多个标志(例如--filter "foo=bar" --filter "bif=baz"

当前支持的过滤器是:

  • 悬空(布尔值-正确或错误)
  • 标签(label=<key>label=<key>=<value>
  • 前(<image-name>[:<tag>]<image id><image@digest>) -给定id或引用之前创建的过滤器的图像
  • since(<image-name>[:<tag>]<image id><image@digest>)-过滤自给定id或引用以来创建的图像
  • 参考(图像参考的模式)-过滤参考与指定模式匹配的图像

显示未标记的图像(悬空)

$ 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

这将显示未标记的图像,这些图像是图像树的叶子(不是中间层)。当新的映像构建repo:tag脱离映像ID时,这些映像就会出现 ,而将其保留为<none>:<none>或未标记。如果在容器当前正在使用该图像时尝试删除该图像,则会发出警告。通过具有此标志,可以进行批清理。

您可以结合使用docker rmi ...

$ docker rmi $(docker images -f "dangling=true" -q)

8abc22fbb042
48e5f45168b9
bf747efa0e2f
980fe10e5736
dea752e4e117
511136ea3c5a

Docker警告您是否存在使用这些未标记图像的容器。

显示带有给定标签的图像

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模板的有效占位符:

占位符 描述
.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 CLI的基本命令。