13.4. 配置容器 pull secret
要能够获取容器镜像,您必须使用"pull secret"配置主机系统,其中包括主机更新本身。如需了解更多详细信息,请参阅 RHEL 文档中的 在镜像模式中注入 secret 的附录。
您可以将容器 pull secret 配置为已构建镜像。如果您使用外部安装程序(如 Anaconda 用于裸机)或 bootc-image-builder
,则必须使用任何适用的 pull secret 配置系统。
主机 bootc 更新将配置写入 /etc/ostree/auth.json
文件,该文件与 rpm-ostree
共享。
Podman 没有系统范围凭证。Podman 接受以下目录下的 containers-auth
位置:
-
/run
: 这个目录的内容在重启后传播,这是不需要的。 -
/root
: root 主目录的一部分,默认为本地可可变状态。
要统一引导和 Podman 凭据,请为
和 Podman 使用单个默认全局 pull secret。以下容器构建是统一 bootc
bootc
和 Podman 凭据的示例。示例要求名为 creds
的 secret 包含要构建的 registry pull secret。
流程
-
在
bootc
和 Podman 之间创建一个符号链接以使用单个 pull secret。通过创建符号链接,您可以确保两个位置都存在于嵌入在容器镜像中的通用持久文件中。 创建
/usr/lib/container-auth.json
文件。FROM quay.io/<namespace>/<image>:<tag> COPY containers-auth.conf /usr/lib/tmpfiles.d/link-podman-credentials.conf RUN --mount=type=secret,id=creds,required=true cp /run/secrets/creds /usr/lib/container-auth.json && \ chmod 0600 /usr/lib/container-auth.json && \ ln -sr /usr/lib/container-auth.json /etc/ostree/auth.json
FROM quay.io/<namespace>/<image>:<tag> COPY containers-auth.conf /usr/lib/tmpfiles.d/link-podman-credentials.conf RUN --mount=type=secret,id=creds,required=true cp /run/secrets/creds /usr/lib/container-auth.json && \ chmod 0600 /usr/lib/container-auth.json && \ ln -sr /usr/lib/container-auth.json /etc/ostree/auth.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 containerfile 时,会出现以下操作:
-
Containerfile 使
/run/containers/0/auth.json
成为临时运行时文件。 -
它创建一个指向
/usr/lib/container-auth.json
的符号链接。 -
它还会创建一个持久文件,该文件也从
/etc/ostree/auth.json
链接。
-
Containerfile 使