为镜像创建签名
概要
podman image sign [options] image [image ...]
描述
podman image sign 命令用于为从仓库中拉取的一个或多个本地镜像创建本地签名。签名将被写入到由 $HOME/.config/containers/registries.d
(如果存在)或 /etc/containers/registries.d
(除非在编译时覆盖)中的仓库配置文件派生的目录中。更多信息请参见 containers-registries.d(5)。默认情况下,对于 root 用户,签名将写入 /var/lib/containers/sigstore
;对于非 root 用户,签名将写入 $HOME/.local/share/containers/sigstore
。
选项
--all, -a
为多架构镜像的所有清单创建签名(默认为 false)。
--authfile
指定身份验证文件的路径(未在此命令的示例中使用)。
--cert-dir
指定证书目录的路径(未在此命令的示例中使用)。
--directory, -d=dir
将签名存储在指定的目录中。默认值:/var/lib/containers/sigstore
--help, -h
打印用法说明。
--sign-by=identity
覆盖签名的默认身份。
示例
使用用户的密钥环为 busybox 镜像签名,并将签名以 foo@bar.com 的身份保存在 /tmp/signatures/ 目录中:
$ sudo podman image sign --sign-by foo@bar.com --directory /tmp/signatures docker://privateregistry.example.com/foobar
使用指定的身份验证文件 /tmp/foobar.json
,并以 foo@bar.com 的身份为 busybox 镜像签名,签名保存在 /tmp/signatures/ 目录中:
$ sudo podman image sign --authfile=/tmp/foobar.json --sign-by foo@bar.com --directory /tmp/signatures docker://privateregistry.example.com/foobar
相关配置
签名的写入(和读取)位置由位于 /etc/containers/registries.d/
(对于 root 用户)或 $HOME/.config/containers/registries.d
(对于非 root 用户)的 YAML 格式配置文件定义。在签名镜像时,Podman 使用这些配置文件来确定基于原始仓库名称的签名写入位置,或使用默认的存储值,除非使用 --directory
选项进行覆盖。例如,考虑以下配置文件:
docker:
privateregistry.example.com:
sigstore: file:///var/lib/containers/sigstore
在签名以 'privateregistry.example.com' 仓库名称开头的镜像时,签名将被写入 /var/lib/containers/sigstore/privateregistry.example.com
的子目录中。使用 'sigstore' 还意味着在执行与拉取相关的操作时,签名将从同一位置读取。
另请参阅
containers-certs.d(5), containers-registries.d(5)
历史
2018 年 11 月,由 Qi Wang 首次编写。