名称¶
podman-container-runlabel - 按照容器镜像标签的描述执行命令
语法¶
podman container runlabel [选项] 标签 镜像 [参数…]
描述¶
podman container runlabel 读取指定的 标签
的 镜像
并将其作为命令在主机上执行。如果标签不存在,Podman 会退出并显示错误。附加参数会追加到命令中。
从历史上看,容器镜像描述了内容(例如层)以及容器运行时(例如 crun(1) 或 runc(1))如何执行容器。例如,镜像可能在它的配置中设置环境和命令。但是,容器镜像不能直接指定容器引擎(如 Podman)如何执行它。例如,镜像配置不包含有关日志驱动程序、命名空间或它需要正确运行的哪些功能的信息。
podman container runlabel
以一种简单而有效的方式解决了容器镜像的局限性。Podman 读取标签的内容,并将其解释为在主机上执行的命令。这样,镜像就可以精确地描述 Podman 如何执行它。例如,一个内容为 /usr/bin/podman run -d --pid=host --privileged \${IMAGE}
的标签指示镜像在使用主机 PID 命名空间的独立、特权容器中执行。这将容器镜像的自描述从“什么”提升到“如何”。
请注意,runlabel
命令仅适用于受信任的环境。不建议在不受信任的镜像上使用此命令。
变量¶
标签的内容可以引用以下变量,这些变量在处理标签时会被替换。
镜像 镜像的名称。在执行 podman container runlabel 标签 fedora
时,镜像
变量将被替换为 fedora
。有效格式为 镜像
、$镜像
、${镜像}
和 =镜像
。
名称 由 --name
选项指定。格式与 IMAGE 属性相同。
PWD 将被替换为当前工作目录。
选项¶
--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)机器)
--creds=[用户名[:密码]]¶
用于对注册表进行身份验证的 [用户名[:密码]],如果需要。如果一个或两个值没有提供,则会显示命令行提示,并且可以输入该值。密码在输入时不会显示。
请注意,指定的凭据仅用于对目标注册表进行身份验证。它们不会用于镜像或注册表被重写时(请参阅 containers-registries.conf(5)
);要对这些进行身份验证,请考虑使用 containers-auth.json(5)
文件。
--display¶
显示镜像的标签值,该镜像已填充其环境变量。如果指定了 --display,则不会执行 runlabel 命令。
--help, -h¶
打印使用说明
--name, -n=名称¶
使用此名称为容器创建内容。如果未指定,则名称默认为镜像的名称。
--quiet, -q¶
在拉取镜像时抑制输出信息
--replace¶
如果存在具有当前名称的容器,则会停止、删除该容器,并从该镜像创建一个新的容器。
--tls-verify¶
在联系注册表时要求 HTTPS 并验证证书(默认:true)。如果明确设置为 true,则使用 TLS 验证。如果设置为 false,则不使用 TLS 验证。如果未指定,则使用 TLS 验证,除非目标注册表在 containers-registries.conf(5) 中列为不安全的注册表
示例¶
执行名为 foobar 的镜像的 run
标签。
$ podman container runlabel run foobar
执行名为 foobar 的镜像的 install
标签,并带有其他参数。
$ podman container runlabel install foobar apples oranges
显示镜像 foobar 的 run
标签的内容。
$ podman container runlabel --display run foobar
另请参阅¶
podman(1), crun(1), runc(8), containers-certs.d(5), containers-auth.json(5), containers-registries.conf(5)
历史¶
2021 年 8 月,Valentin Rothberg(rothberg at redhat dot com)改进
2018 年 9 月,最初由 Brent Baude(bbaude at redhat dot com)编写