7.5. 将容器镜像优化为较小的版本
您可以使用 bootc-base-imagectl rechunk
子命令优化输入容器镜像到具有相同文件系统树的新镜像中,但被分成可寻址的可重复生成的层,以及预先计算的 SELinux 标签。
这可提高网络效率(用于推送和拉取),因为不更改镜像构建的层可以在不造成传输的情况下被重复使用。
rechunk
操作适用于由创建新镜像 FROM <rhel-bootc>
的默认模式生成的镜像,但与仅输出单个大 tar
层的 scratch 构建结合使用特别有用。如果没有重试对输入的每个更改,如内核更新,将导致新层包括 bootc 镜像的整个内容。然后,此新层必须推送、由 registry 存储并由客户端拉取。
bootc-base-imagectl
作为 bootc 镜像的一部分提供,旨在在容器内运行,但需要将主机 containers-storage 映射到要执行的容器。
先决条件
- 您有一个之前构建的基础镜像。
流程
运行以下命令来重新扩展您的基础镜像。
sudo podman run --rm --privileged -v /var/lib/containers:/var/lib/containers \ registry.redhat.io/rhel10/rhel-bootc:latest \ /usr/libexec/bootc-base-imagectl rechunk \ quay.io/exampleos/rhel-bootc:single \ quay.io/exampleos/rhel-bootc:chunked
$ sudo podman run --rm --privileged -v /var/lib/containers:/var/lib/containers \ registry.redhat.io/rhel10/rhel-bootc:latest \ /usr/libexec/bootc-base-imagectl rechunk \ quay.io/exampleos/rhel-bootc:single \ quay.io/exampleos/rhel-bootc:chunked
Copy to Clipboard Copied! Toggle word wrap Toggle overflow