名称

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 [选项] 术语

选项

--authfile=path

认证文件的路径。在 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=path

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

--compatible

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

--creds=[username[:password]]

用于向镜像仓库进行身份验证的 [username[:password]](如果需要)。如果未提供一个或两个值,则会出现命令行提示,可以输入该值。密码输入时无回显。

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

--filter, -f=过滤器

根据提供的条件筛选输出(默认 [])

支持的筛选器包括:

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

  • is-automated (boolean - true | false) - 镜像是否自动化

  • is-official (boolean - 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 验证。如果未指定,除非目标注册表在 containers-registries.conf(5) 中列为不安全注册表,否则使用 TLS 验证。

示例

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

$ podman search --limit 3 fedora
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 编译