Chapter 1. Introducing image mode for RHEL
Chapter 1. Introducing image mode for RHEL Use image mode for RHEL to build, test, and deploy operating systems by using the same tools and techniques as application containers. Image mode for RHEL is available by using the registry.redhat.io/rhel9/rhel-bootc bootc image. The RHEL bootc images differ from the existing application Universal Base Images (UBI) in that they contain additional components necessary to boot that were traditionally excluded, such as, kernel, initrd, boot loader, firmware, among others. Important Red Hat provides the rhel9/rhel-9-bootc container image as a Technology Preview. Technology Preview features provide early access to upcoming product innovations, enabling customers to test functionality and provide feedback during the development process. However, these features are not fully supported. Documentation for a Technology Preview feature might be incomplete or include only basic installation and configuration information. See Technology Preview Features Support Scope on the Red Hat Customer Portal for information about the support scope for Technology Preview features. Note The rhel-bootc and user-created containers based on rhel-bootc container image are subject to the Red Hat Enterprise Linux end user license agreement (EULA) . You are not allowed to publicly redistribute these images. Figure 1.1. Building, deploying, and managing operating system by using image mode for RHEL Red Hat provides bootc image for the following computer architectures: AMD and Intel 64-bit architectures (x86-64-v2) The 64-bit ARM architecture (ARMv8.0-A) The benefits of image mode for RHEL occur across the lifecycle of a system. The following list contains some of the most important advantages: Container images are easier to understand and use than other image formats and are fast to build Containerfiles, also known as Dockerfiles, provide a straightforward approach to defining the content and build instructions for an image. Container images are often significantly faster to build and iterate on compared to other image creation tools. Consolidate process, infrastructure, and release artifacts As you distribute applications as containers, you can use the same infrastructure and processes to manage the underlying operating system. Immutable updates Just as containerized applications are updated in an immutable way, with image mode for RHEL, the operating system is also. You can boot into updates and roll back when needed in the same way that you use rpm-ostree systems. Warning The use of rpm-ostree to make changes, or install content, is not supported. Portability across hybrid cloud environments You can use bootc images across physical, virtualized, cloud, and edge environments. Although containers provide the foundation to build, transport, and run images, it is important to understand that after you deploy these bootc images, either by using an installation mechanism, or you convert them to a disk image, the system does not run as a container. Bootc supports the following container image formats and disk image formats: Table 1.1. bootc supported image types Image type Target environment OCI container format Physical, virtualized, cloud, and edge environments. ami Amazon Machine Image. qcow2 (default) QEMU. vmdk VMDK for vSphere. anaconda-iso An unattended Anaconda installer that installs to the first disk found. raw Unformatted raw disk. Also supported in QEMU and Libvirt vhd VHD for Virtual PC, among others. gce Google Compute Engine (GCE) environment. Containers help streamline the lifecycle of a RHEL system by offering the following possibilities: Building container images You can configure your operating system at a build time by modifying the Containerfile. Image mode for RHEL is available by using the registry.redhat.io/rhel9/rhel-bootc container image. You can use Podman, OpenShift Container Platform, or other standard container build tools to manage your containers and container images. You can automate the build process by using CI/CD pipelines. Versioning, mirroring, and testing container images You can version, mirror, introspect, and sign your derived bootc image by using any container tools such as Podman or OpenShift Container Platform. Deploying container images to the target environment You have several options on how to deploy your image: Anaconda : is the installation program used by RHEL. You can deploy all image types to the target environment by using Anaconda and Kickstart to automate the installation process. bootc-image-builder : is a containerized tool that converts the container image to different types of disk images, and optionally uploads them to an image registry or object storage. bootc : is a tool responsible for fetching container images from a container registry and installing them to a system, updating the operating system, or switching from an existing ostree-based system. The RHEL bootc image contains the bootc utility by default and works with all image types. However, remember that the rpm-ostree is not supported and must not be used to make changes. Updating your operating system The system supports in-place transactional updates with rollback after deployment. Automatic updates are on by default. A systemd service unit and systemd timer unit files check the container registry for updates and apply them to the system. As the updates are transactional, a reboot is required. For environments that require more sophisticated or scheduled rollouts, disable auto updates and use the bootc utility to update your operating system. RHEL has two deployment modes. Both provide the same stability, reliability, and performance during deployment. See their differences: Package mode : You can build package-based images and OSTree images by using RHEL image builder, and you can manage the package mode images by using composer-cli or web console. The operating system uses RPM packages and is updated by using the dnf package manager. The root filesystem is mutable. However, the operating system cannot be managed as a containerized application. See Composing a customized RHEL system image product documentation. Image mode : a container-native approach to build, deploy, and manage RHEL. The same RPM packages are delivered as a base image and updates are deployed as a container image. The root filesystem is immutable by default, except for /etc and /var , with most content coming from the container image. You can choose to use either the Image mode or the Package mode deployment to build, test, and share your operating system. Image mode additionally enables you to manage your operating system in the same way as any other containerized application. 1.1. Prerequisites You have a subscribed RHEL 9 system. For more information, see Getting Started with RHEL System Registration documentation . You have a container registry. You can create your registry locally or create a free account on the Quay.io service. To create the Quay.io account, see Red Hat Quay.io page. You have a Red Hat account with either production or developer subscriptions. No cost developer subscriptions are available on the Red Hat Enterprise Linux Overview page. You have authenticated to registry.redhat.io. For more information, see Red Hat Container Registry Authentication article. 1.2. Additional resources Introducing image mode for RHEL and bootc in Podman Desktop quick start guide Image mode for Red Hat Enterprise Linux quick start: AI inference quick start guide Getting Started with Podman AI Lab blog article Customizing Anaconda product documentation Automatically installing RHEL product documentation (Kickstart) Composing a customized RHEL system image product documentation Composing, installing, and managing RHEL for Edge images product documentation