Bootc & Image Mode

OS-as-container deployment, immutable infrastructure, and container-based system updates on RHEL 10.

Overview

RHEL 10 introduces bootc — an OS-as-container deployment model. The entire OS is packaged as a container image, enabling atomic upgrades, rollback, and immutable infrastructure.

# Check bootc status
sudo bootc status

# System information
sudo bootc info

# List available updates
sudo bootc update-check

System Updates

# Update the OS (atomic, rollback-capable)
sudo bootc update

# Reboot to activate new OS version
sudo reboot

# Rollback to previous version
sudo bootc reset
sudo reboot

# Verify active booted image
sudo bootc status

Building Custom OS Images

# Example Containerfile for custom OS image
# FROM registry.access.redhat.com/ubi10/ubi
# RUN dnf install -y httpd && dnf clean all
# RUN systemctl enable httpd
# COPY server.conf /etc/httpd/conf.d/

# Build the OS image
buildah bud -t myos:latest .

# Push to registry
buildah push myos:latest docker://myregistry.example.com/myos:latest

Installing from Container Image

# Install RHEL 10 in image mode from ISO
# At installer, select 'Image Install' and provide container image URL

# Or use bootc to install to a target device
sudo bootc install to-disk /dev/sda --transport=registry myregistry.example.com/myos:latest

# Configure container registry auth for the installed system
sudo bootc registry login myregistry.example.com

Package Layering

# Install packages on top of the container OS
sudo bootc pkg install nginx

# Remove layered packages
sudo bootc pkg remove nginx

# List layered packages
sudo bootc pkg list

# After package changes, update and reboot
sudo bootc update
sudo reboot