第 2 章 构建和测试 RHEL bootc 镜像
您可以使用 Podman 和 Containerfiles 构建和测试 RHEL 容器镜像,来有效地跨环境创建、自定义和共享可引导的 RHEL 系统镜像。您也可以使用其他工具,如 OpenShift Container Platform。有关使用容器配置 RHEL 系统的更多信息,请参阅 rhel-bootc-examples 存储库。
2.1. 从 Containerfile 构建并配置基于 bootc 的镜像 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以使用 Containerfile 构建和自定义带有您需要的工具、配置和应用程序的基于 bootc 的镜像。虽然大多数标准指令都可以正常工作,但在系统上安装镜像时会忽略一些。
图 2.1. 使用 Containerfile 中的指令构建镜像,测试容器,将镜像推送到注册中心,并与其他人共享
通用 Containerfile 结构如下:
FROM registry.redhat.io/rhel10/rhel-bootc:latest
RUN dnf -y install [software] [dependencies] && dnf clean all
ADD [application]
ADD [configuration files]
RUN [config scripts]
可以在 Containerfile 和 Dockerfile 中使用的命令一样。
但是,当 rhel-10-bootc 镜像安装到系统时,Containerfile 中的以下命令会被忽略:
-
ENTRYPOINT和CMD(OCI:Entrypoint/Cmd):您可以设置CMD /sbin/init。 -
ENV(OCI:Env): 更改systemd配置以配置全局系统环境。 -
EXPOSE(OCI:exposePorts):它独立于系统防火墙和运行时网络功能。 -
USER(OCI:User):在 RHEL bootc 中配置单个服务,来作为非特权用户运行。
rhel-10-bootc 容器镜像重用 OCI 镜像格式。
-
rhel-10-bootc容器镜像在安装到系统时会忽略容器配置部分(Config)。 -
当使用容器运行时(如
podman或docker)运行此镜像时,rhel-10-bootc容器镜像不会忽略容器配置部分(Config)。