Podman Search 命令介绍手册
一、概述
Podman 是一个开源的容器运行时工具,用于管理容器而无需守护进程。podman search
命令允许开发者搜索容器镜像仓库中的镜像,以便找到满足特定需求的镜像。这个命令对于快速发现和选择适当的容器镜像非常有用。
二、基本语法
podman search [OPTIONS] TERM
OPTIONS
:可选参数,用于配置搜索操作。TERM
:要搜索的关键词或短语。
三、常用选项
- --authfile:指定认证文件的路径,用于访问需要认证的镜像仓库。
- --format:指定输出格式,如表格、JSON等。
- --limit:限制搜索结果的数量。
- --no-trunc:不截断输出结果中的字段。
- --sort:按照特定字段对结果进行排序,如星星数、创建时间等。
四、使用示例
- 搜索包含关键词 "nginx" 的镜像
podman search nginx
这将返回与 "nginx" 相关的所有镜像列表,包括镜像名称、描述、星星数(表示受欢迎程度)等信息。
- 限制搜索结果数量
如果您只想查看前五个搜索结果,可以使用 --limit
选项:
podman search --limit 5 nginx
- 按照星星数排序搜索结果
要按照星星数从高到低对搜索结果进行排序,可以使用 --sort
选项:
podman search --sort stars -n nginx
请注意,-n
表示降序排序。如果您想按升序排序,请省略 -n
。
- 使用 JSON 格式输出搜索结果
如果您希望将搜索结果以 JSON 格式输出,以便后续编程处理,可以使用 --format
选项:
podman search --format json nginx
五、注意事项
- 默认情况下,
podman search
命令会搜索公共的容器镜像仓库(如 Docker Hub)。如果您使用的是私有仓库或需要特殊配置的仓库,请确保配置了正确的认证信息。 - 搜索结果可能包含大量数据,特别是在没有使用
--limit
选项时。请确保您的终端或输出设备能够处理大量输出。
六、总结
podman search
命令是 Podman 工具集中用于搜索容器镜像的重要命令。通过结合不同的选项和参数,您可以高效地搜索和发现满足您需求的镜像。希望本手册能帮助您更好地理解和使用 podman search
命令。
--filter,-f=filter
基于提供的条件过滤输出(默认为 [])
支持的过滤器有:
- stars (int) - 图像显示所需的最小星数
- is-automated (布尔值 - true | false) - 图像是否是自动化的
- is-official (布尔值 - true | false) - 图像是否是官方的
--format
使用 Go 模板美化图像输出。 有效占位符: .Name - 图像的完整名称 .RepoTags - 仓库标签数组 .StarCount - 图像的星数 .IsOfficial - 图像是否是官方的 .IsAutomated - 图像是否是自动化的
示例:--format "{{.Name}}\t{{.StarCount}}"
--limit
返回的最大结果数(默认为 25)
--no-trunc
不截断输出
--quiet,-q
仅显示数字 ID
--registry
在指定的注册表中搜索图像。如果注册表不支持搜索,则返回错误。
如果没有指定注册表,Podman 将在 containers-registries.conf(5)
中的所有 unqualified-search 注册表中搜索。
--sort
基于字段对输出进行排序。字段可以是名称、星数或更新时间。默认为名称。
示例
podman search nginx
在 containers-registries.conf(5)
中的所有 unqualified-search 注册表中搜索术语 'nginx'。
podman search registry.fedoraproject.org/nginx
在 'registry.fedoraproject.org' 注册表中搜索术语 'nginx'。
podman search --registry registry.fedoraproject.org/ --limit 5
在 'registry.fedoraproject.org' 注册表中搜索最多 5 个结果。
podman search --filter stars=1000
在 containers-registries.conf(5)
中的所有 unqualified-search 注册表中搜索至少有 1000 颗星的图像。
podman search --format "{{.Name}}\t{{.StarCount}}" nginx
在 containers-registries.conf(5)
中的所有 unqualified-search 注册表中搜索术语 'nginx',并使用指定的格式显示图像名称和星数。
podman search --quiet registry.fedoraproject.org/nginx
在 'registry.fedoraproject.org' 注册表中搜索术语 'nginx',并仅显示匹配图像的数字 ID。
--format=format
使用 Go 模板更改输出格式。
Go 模板中有效的占位符如下:
占位符 | 描述 |
---|---|
.Automated | 如果图像是自动化的,则为 "[OK]" |
.Description | 图像描述 |
.Index | 注册表 |
.Name | 图像名称 |
.Official | 如果图像是官方的,则为 "[OK]" |
.Stars | 图像的星数 |
.Tag | 仓库标签 |
注意:仅在设置了 --list-tags 时使用 .Tag。
--help,-h
打印使用说明
--limit=limit
限制返回的结果数(默认为 25)。 注意:每个注册表的结果都限制为此值。 例如,如果限制为 10 并且正在搜索两个注册表,则总结果数为 20,每个注册表 10 个(如果每个注册表至少有 10 个匹配项)。 搜索结果的顺序是 API 端点返回结果的顺序。
--list-tags
列出指定图像的仓库中可用的标签。 注意: --list-tags 要求搜索项为完全指定的图像名称。 结果包含图像名称及其标签,与图像关联的每个标签一行。
--no-trunc
不截断输出(默认为 false)。
--tls-verify
示例
搜索包含指定名称的图像,从每个定义的注册表中返回前三个图像。
podman search --limit 3 <image_name>
这将会搜索在 containers-registries.conf(5)
文件中定义的所有 unqualified-search 注册表,并返回与 <image_name>
匹配的前三个图像。
如果你想要搜索特定的注册表,你可以使用 --registry
选项:
podman search --limit 3 --registry registry.fedoraproject.org <image_name>
如果你想要查看特定图像的可用标签,你需要使用 --list-tags
选项,并指定一个完整的图像名称(包括注册表和标签):
podman search --list-tags registry.fedoraproject.org/<image_name>:<tag>
请注意,--list-tags
要求你指定一个具体的图像名称和标签,因为它是在特定的图像仓库中搜索可用的标签。
如果你想要定制输出格式,你可以使用 --format
选项:
podman search --format "{{.Name}}\t{{.Stars}}\t{{.Description}}" <image_name>
这将使用 Go 模板来格式化输出,显示图像的名称、星数和描述。你可以根据需要调整模板中的占位符。
podman search --limit 3 fedora
registry.fedoraproject.org/f29/fedora-toolbox
registry.fedoraproject.org/f30/fedora-toolbox
registry.fedoraproject.org/f31/fedora-toolbox
docker.io/library/fedora 官方 Docker 构建的 Fedora 镜像
docker.io/kasmweb/fedora-37-desktop 适用于 Kasm Workspaces 的 Fedora 37 桌面版
docker.io/kasmweb/fedora-38-desktop 适用于 Kasm Workspaces 的 Fedora 38 桌面版
quay.io/fedora/fedora
quay.io/containerdisks/fedora # Fedora 容器磁盘镜像 <img src="htt...
quay.io/fedora/fedora-minimal
上述命令 podman search --limit 3 fedora
的输出表明,Podman 在搜索名为 fedora
的镜像时,由于 --limit 3
的限制,理论上每个注册表应该只返回最多三个匹配的镜像。然而,在提供的输出中,似乎并没有严格遵循这一限制,可能的原因是 Podman 的 --limit
选项是针对每个搜索源(即每个注册表)分别限制的,而不是对总结果数进行限制。
输出结果列出了多个镜像的名称和描述,这些镜像分别来自 registry.fedoraproject.org
、docker.io
和 quay.io
这几个不同的注册表。每个镜像前都标注了其所在的注册表地址,以及对应的描述信息。注意,输出中似乎有些重复的行(比如两个 "NAME" 行),这可能是输出格式的问题或者复制粘贴时的错误。
注意:Stars(星星数)、Official(官方)和Automated(自动化)描述符仅在Docker Hub上可用,因此默认情况下不会显示。
podman search --format "{{.Name}}\t{{.Stars}}\t{{.Official}}" alpine --limit 3
docker.io/library/alpine 7956 [OK]
docker.io/alpine/git 192
docker.io/anapsix/alpine-java 474
quay.io/libpod/alpine 0
quay.io/vqcomms/alpine-tools 0
quay.io/wire/alpine-deps 0
搜索并列出指定镜像的标签,返回每个已定义注册表中的前四个镜像。
podman search --list-tags registry.access.redhat.com/ubi8 --limit 4
NAME TAG
registry.access.redhat.com/ubi8 8.4-211
registry.access.redhat.com/ubi8 8.4-206.1626828523-source
registry.access.redhat.com/ubi8 8.4-199
registry.access.redhat.com/ubi8 8.4-211-source
注意:这仅适用于实现v2 API的注册表。如果尝试使用v1注册表,将返回错误。
文件
registries.conf (/etc/containers/registries.conf
)
registries.conf 是配置文件,用于指定在补全不包含注册表或域部分的镜像名称时,应咨询哪些容器注册表。
另请参阅
podman(1), podman-login(1), podman-logout(1),
历史
2018 年 1 月,最初由 Urvashi Mohnani编译