名称

podman-search - 在注册表中搜索镜像

概要

podman search [选项] 术语

描述

podman search 在注册表或注册表列表中搜索匹配的镜像。用户可以通过在搜索词中添加注册表前缀来指定要搜索的注册表(例如,registry.fedoraproject.org/fedora)。默认情况下,使用 containers-registries.conf(5) 中的所有未限定搜索注册表。

默认结果数为 25。可以使用 --limit 标志限制结果数。如果搜索多个注册表,则将对每个注册表应用限制。可以使用 --filter 标志过滤输出。要获取注册表中所有可用的镜像,而无需指定搜索词,用户只需输入注册表名称,并在末尾添加“/”(例如,registry.fedoraproject.org/)。

请注意,podman search 不是确定镜像是否存在或是否存在的可靠方法。v1 和 v2 Docker 分发 API 的搜索行为特定于每个注册表的实现。某些注册表可能根本不支持搜索。此外,请注意,在没有搜索词的情况下搜索仅适用于实现 v2 API 的注册表。

podman [全局选项]

podman search [全局选项]

podman search [选项] TERM

选项

--authfile=路径

身份验证文件的路径。默认情况下为 Linux 上的 ${XDG_RUNTIME_DIR}/containers/auth.json,Windows/macOS 上的 $HOME/.config/containers/auth.json。该文件由 podman login 创建。如果在此处找不到授权状态,则会检查 $HOME/.docker/config.json,该文件由 docker login 设置。

注意:还可以通过设置 REGISTRY_AUTH_FILE 环境变量来覆盖身份验证文件的默认路径。这可以通过 export REGISTRY_AUTH_FILE=路径 来完成。

--cert-dir=路径

使用 路径 中的证书(*.crt、*.cert、*.key)连接到注册表。(默认:/etc/containers/certs.d)有关详细信息,请参阅 containers-certs.d(5)。(此选项不可用于远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器)

--compatible

在名称和描述之后,还显示星级、官方和自动化描述符,就像 Docker 一样。Podman 默认不显示这些描述符,因为它们不受大多数公共容器注册表支持。

--creds=[用户名[:密码]]

用于对注册表进行身份验证的 [用户名[:密码]](如果需要)。如果一个或两个值未提供,则会显示命令行提示,并且可以输入值。密码在输入时不会显示。

请注意,指定的凭据仅用于对目标注册表进行身份验证。它们不用于镜像或注册表重写时(请参阅 containers-registries.conf(5));要对这些进行身份验证,请考虑使用 containers-auth.json(5) 文件。

--filter, -f=过滤器

根据提供的条件过滤输出(默认 [])

支持的过滤器是

  • stars(int) - 镜像显示所需的最小星级数

  • is-automated(布尔值 - true | false) - 镜像是自动化的还是不是

  • is-official(布尔值 - true | false) - 镜像是官方的还是不是

--format=格式

将输出格式更改为 Go 模板

Go 模板的有效占位符列在下面

占位符

描述

.Automated

如果镜像是自动化的,则为“[OK]”

.Description

镜像描述

.Index

注册表

.Name

镜像名称

.Official

如果镜像是官方的,则为“[OK]”

.Stars

镜像的星级数

.Tag

存储库标签

注意:仅当设置了 --list-tags 时才使用 .Tag。

--help, -h

打印使用说明

--limit=限制

限制结果数量(默认 25)。注意:每个注册表的结果都限制为该值。例如,如果限制为 10 并且正在搜索两个注册表,则总结果数为 20,每个注册表为 10(如果每个注册表中至少有 10 个匹配项)。搜索结果的顺序是 API 端点返回结果的顺序。

--list-tags

列出指定镜像的存储库中的可用标签。注意: --list-tags 要求搜索词为完全指定的镜像名称。结果包含镜像名称及其标签,每条与镜像关联的标签对应一行。

--no-trunc

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

--tls-verify

在与注册表联系时,要求使用 HTTPS 并验证证书(默认:true)。如果显式设置为 true,则使用 TLS 验证。如果设置为 false,则不使用 TLS 验证。如果未指定,则使用 TLS 验证,除非目标注册表在 containers-registries.conf(5) 中列为不安全的注册表。

示例

搜索包含指定名称的镜像,返回每个已定义注册表中的前三个镜像。

$ podman search --limit 3 fedora
NAME                                     DESCRIPTION
NAME                                           DESCRIPTION
registry.fedoraproject.org/f29/fedora-toolbox
registry.fedoraproject.org/f30/fedora-toolbox
registry.fedoraproject.org/f31/fedora-toolbox
docker.io/library/fedora                       Official Docker builds of Fedora
docker.io/kasmweb/fedora-37-desktop            Fedora 37 desktop for Kasm Workspaces
docker.io/kasmweb/fedora-38-desktop            Fedora 38 desktop for Kasm Workspaces
quay.io/fedora/fedora
quay.io/containerdisks/fedora                  # Fedora Containerdisk Images  <img src="htt...
quay.io/fedora/fedora-minimal

请注意,星级、官方和自动化描述符仅在 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), containers-registries(5)

历史记录

2018 年 1 月,最初由 Urvashi Mohnani umohnani@redhat.com 编写