跳到主要内容

列出本地存储中的镜像

概述

podman images [options][image]

podman image list [options][image]

podman image ls [options][image]

描述

显示本地存储的镜像、它们的名称和ID。

选项

--all, -a

显示所有镜像(默认情况下会过滤掉中间层镜像)。默认值为false。

使用此选项时,Podman会列出所有的镜像,包括那些作为其他镜像构建基础的中间层镜像。这有助于您查看完整的镜像层次结构,但可能会包含大量的输出,因为中间层镜像通常很多。

--digests

显示镜像摘要

使用此选项时,Podman会在输出中包含每个镜像的摘要信息。摘要是一个唯一标识镜像内容的哈希值,通常用于验证镜像的完整性和来源。这对于确保镜像未被篡改或确保部署的镜像与预期一致非常有用。

这些选项可以与 podman images 命令一起使用,以自定义输出和满足特定的需求。例如,如果您想查看所有镜像并包括摘要信息,可以运行 podman images --all --digests。这将列出所有镜像,包括中间层镜像,并显示每个镜像的摘要。

--filter, -f=filter

提供过滤器值。

filters 参数的格式为 key=valuekey!=value。如果有多个 filter,则传递多个选项:--filter foo=bar --filter bif=baz

支持的过滤器:

过滤器描述
id根据镜像ID进行过滤。
before根据在给定IMAGE(名称或标签)之前创建的镜像进行过滤。
containers根据有正在运行的容器的镜像进行过滤。
dangling根据悬挂(未使用)的镜像进行过滤。
digest根据摘要进行过滤。
intermediate根据悬挂且没有子镜像的镜像进行过滤。
label根据具有(或不具有,当使用 label!=[...] 时)指定标签的镜像进行过滤。
manifest根据是清单列表的镜像进行过滤。
readonly根据只读或读写镜像进行过滤。
reference根据镜像名称进行过滤。
after/since根据在给定IMAGE(名称或标签)之后创建的镜像进行过滤。
until根据在给定的时间长度或时间之前创建的镜像进行过滤。

使用这些过滤器,用户可以根据不同的条件筛选和列出镜像,从而更容易地管理和定位特定的镜像。例如,可以使用 before 过滤器查找在特定时间或特定镜像之前创建的所有镜像,或者使用 label 过滤器查找具有特定标签的镜像。

id 过滤器接受镜像ID字符串。

before 过滤器接受以下格式:<image-name>[:<tag>]<image id><image@digest>

containers 过滤器显示基于该镜像有正在运行容器的镜像。

dangling 过滤器显示占用磁盘空间且没有实际用途的镜像。悬空镜像是一个文件系统层,它在之前的镜像构建中被使用过,但现在不再被任何镜像引用。它们通常以 <none> 标签表示,占用磁盘空间且没有活跃用途。

digest 过滤器接受镜像摘要字符串。

intermediate 过滤器显示悬空且没有子镜像的镜像。

label 过滤器接受两种格式。一种是 label=keylabel=key=value,它显示具有指定标签的镜像。另一种格式是 label!=keylabel!=key=value,它显示没有指定标签的镜像。

manifest 过滤器显示是清单列表的镜像。

readonly 过滤器默认显示只读和读写镜像。只读镜像可以通过修改 /etc/containers/storage.conf 文件中的 additionalimagestores 来配置。

reference 过滤器接受镜像引用的模式 <image-name>[:<tag>]

aftersince 过滤器接受以下格式:<image-name>[:<tag>]<image id><image@digest>

until 过滤器接受以下格式:golang 持续时间、RFC3339 时间或 Unix 时间戳,并显示直到该时间创建的所有镜像。

这些过滤器可以单独使用或组合使用,以便更精确地选择和列出满足特定条件的镜像。例如,如果您想查找在某个特定镜像之后创建的所有镜像,您可以使用 podman images --filter after=<image-name> 命令。同样,如果您想列出具有特定标签的所有镜像,您可以使用 podman images --filter label=<key>=<value> 命令。

--format=format

这个选项用于改变默认的输出格式。它可以是支持的类型,比如 'json',或者一个Go模板。对于Go模板,有效的占位符如下:

占位符描述
.Containers使用这个镜像的容器数量
.Created镜像创建后经过的时间
.CreatedAt镜像创建的日期和时间,格式为 YYYY-MM-DD HH:MM:SS +nnnn
.CreatedSince与 .Created 相同
.CreatedTime与 .CreatedAt 相同
.Dangling与 .IsDangling 相同
.Digest镜像摘要
.History镜像层的历史记录
.ID镜像ID(缩写)
.Id镜像ID(完整的SHA)
.IsDangling镜像是否悬空?(true/false)
.IsReadOnly镜像是否只读?(true/false)
.Labels ...标签的映射
.Names镜像的FQIN(完全限定镜像名称)
.ParentId父镜像ID的完整SHA,或者为空(字符串)
.ReadOnly与 .IsReadOnly 相同
.RepoDigests由一个或多个repo/name@sha256:SHA字符串组成的映射
.Repository镜像仓库
.RepoTags由这个镜像的一个或多个FQIN字符串组成的映射
.SharedSize似乎总是0 (可能是指与其他镜像共享的大小,但通常显示为0)
.Size镜像层的大小(人类友好的字符串格式,如"1.23GB")
.Tag镜像标签
.VirtualSize镜像层在磁盘上的大小(以字节为单位)

通过使用这些占位符,您可以根据需要使用 podman images --format 选项来自定义输出格式。例如,如果您想查看每个镜像的ID、标签和大小,可以使用以下命令:

podman images --format "{{.Id}} {{.Tag}} {{.Size}}"

这将显示每个镜像的完整ID、标签和大小(以人类可读的格式)。如果您需要以字节为单位查看大小,则可以使用 .VirtualSize 占位符代替 .Size

--history

显示镜像名称的历史。如果一个镜像被重新标记或取消标记,那么该镜像的名称历史将会被前置(最新的镜像优先显示)。这尤其在撤销标记操作或镜像因被取消标记而不包含任何名称时非常有用。

--no-trunc

不截断输出(默认值为 false)。

@@option noheading

--quiet, -q

仅列出镜像ID。

--sort=sort

created(创建时间)、id(ID)、repository(仓库)、size(大小)或 tag(标签)排序(默认值为 created)。

示例

列出本地存储中的所有非悬空镜像:

$ podman images
仓库 标签 镜像ID 创建时间 大小
quay.io/podman/stable latest e0b7dabc3352 22小时前 331 MB
docker.io/library/alpine latest 9c6f07244728 5天前 5.83 MB
registry.fedoraproject.org/fedora latest 2ecb6df95994 3周前 169 MB
quay.io/libpod/testimage 20220615 f26aa69bb3f3 2个月前 8.4 MB

列出与指定名称匹配的所有镜像:

podman images stable
仓库 标签 镜像ID 创建时间 大小
quay.io/podman/stable latest e0b7dabc3352 22小时前 331 MB

列出容器中存储的所有镜像的ID:

podman image ls --quiet
e3d42bcaf643
ebb91b73692b
4526339ae51c

列出所有镜像但不显示标题:

# podman images --noheading
docker.io/kubernetes/pause latest e3d42bcaf643 3年前 251 kB
<none> <none> ebb91b73692b 4周前 27.2 MB
docker.io/library/ubuntu latest 4526339ae51c 6周前 126 MB

列出所有镜像但不截断输出:

# podman image list --no-trunc
仓库 标签 镜像ID 创建时间 大小
docker.io/kubernetes/pause latest sha256:e3d42bcaf643097dd1bb0385658ae8cbe100a80f773555c44690d22c25d16b27 3年前 251 kB
<none> <none> sha256:ebb91b73692bd27890685846412ae338d13552165eacf7fcd5f139bfa9c2d6d9 4周前 27.2 MB
docker.io/library/ubuntu latest sha256:4526339ae51c3cdc97956a7a961c193c39dfc6bd9733b0d762a36c6881b5583a 6周前 126 MB

以格式化内容列出所有镜像内容:

# podman images --format "table {{.ID}} {{.Repository}} {{.Tag}}"
镜像ID 仓库 标签
e3d42bcaf643 docker.io/kubernetes/pause latest
ebb91b73692b <none> <none>
4526339ae51c docker.io/library/ubuntu latest

列出任何没有标签(dangling)的镜像:

# podman images --filter dangling=true
仓库 标签 镜像ID 创建时间 大小
<none> <none> ebb91b73692b 4周前 27.2 MB

以JSON格式列出所有镜像:

# podman images --format json
[
{
"id": "e3d42bcaf643097dd1bb0385658ae8cbe100a80f773555c44690d22c25d16b27",
"names": [
"docker.io/kubernetes/pause:latest"
],
"digest": "sha256:0aecf73ff86844324847883f2e916d3f6984c5fae3c2f23e91d66f549fe7d423",
"created": "2014-07-19T07:02:32.267701596Z",
"size": 250665
},
{
"id": "ebb91b73692bd27890685846412ae338d13552165eacf7fcd5f139bfa9c2d6d9",
"names": [
"<none>"
],
"digest": "sha256:ba7e4091d27e8114a205003ca6a768905c3395d961624a2c78873d9526461032",
"created": "2017-10-26T03:07:22.796184288Z",
"size": 27170520
},
{
"id": "4526339ae51c3cdc97956a7a961c193c39dfc6bd9733b0d762a36c6881b5583a",
"names": [
"docker.io/library/ubuntu:latest"
],
"digest": "sha256:193f7734ddd68e0fb24ba9af8c2b673aecb0227b026871f8e932dab45add7753",
"created": "2017-10-10T20:59:05.10196344Z",
"size": 126085200
}
]

按照指定的列对所有镜像进行排序:

# podman images --sort repository
仓库 标签 镜像ID 创建时间 大小
<none> <none> 2460217d76fc 大约1分钟前 4.41 MB
docker.io/library/alpine latest 3fd9065eaf02 5个月前 4.41 MB
localhost/myapp latest b2e0ad03474a 大约1分钟前 4.41 MB
registry.access.redhat.com/rhel7 latest 7a840db7f020 2周前 211 MB
registry.fedoraproject.org/fedora 27 801894bc0e43 6周前 246 MB

显示正在使用的镜像列表与包括孤立镜像在内的所有镜像列表之间的差异:

# podman images
仓库 标签 镜像ID 创建时间 大小
localhost/test latest 18f0c080cd72 4秒前 4.42 MB
docker.io/library/alpine latest 3fd9065eaf02 5个月前 4.41 MB
# podman images -a
仓库 标签 镜像ID 创建时间 大小
localhost/test latest 18f0c080cd72 6秒前 4.42 MB
<none> <none> 270e70dc54c0 7秒前 4.42 MB
<none> <none> 4ed6fbe43414 8秒前 4.41 MB
<none> <none> 6b0df8e71508 8秒前 4.41 MB
docker.io/library/alpine latest 3fd9065eaf02 5个月前 4.41 MB

另请参阅

podman(1), containers-storage.conf(5)

历史

2017年3月,最初由Dan Walsh整理编译