Bootable containers blend containerization technology with complete operating system deployment that revolutionizes RHEL Docker image management. These containers use the Open Container Initiative (OCI) image format to package the full kernel and hardware support into a minimal image file size. This approach enables uninterrupted deployment and management in different environments.

The process of building, shipping, and running operating systems has become easier since you can create bootable containers from standard RHEL Docker base images. These containers support multiple disk image formats like raw, qcow, iso, vmdk, and ami that allow deployment anywhere. The system lets you perform atomic updates straight from container images to ensure consistent deployments, and you retain control to roll back changes as needed.
This piece shows you how to create and manage bootable containers through Podman Desktop. You’ll discover everything from setup basics to deployment strategies and learn to make use of RHEL subscription benefits. The guide also helps you optimize container builds for different deployment scenarios.
Understanding RHEL Docker Base Images
Red Hat Enterprise Linux (RHEL) Docker base images are the foundations for building secure and reliable containerized applications. These images come in two variants: RHEL base images and Universal Base Images (UBI). Each variant meets specific deployment needs.
What are RHEL Bootable Containers?
Bootable containers take traditional container technology further by including a complete Linux system. These containers package the entire operating system, kernel, and hardware support into a minimal image file, instead of just running isolated applications. Developers can use standard OCI container tools like Podman or Buildah to build, push, and pull these images from registries such as Red Hat Quay.
Bootable containers stand out because of their immutable nature. The system mounts all directories as read-only except /etc and /var when deployed on physical or virtual machines. These containers also support atomic updates directly from container registries. This ensures system consistency and makes rollback procedures simpler.
RHEL Docker Image License Requirements
The Universal Base Image (UBI) brings substantial flexibility to licensing and distribution. UBI lets developers do more than traditional RHEL base images:
- Build and share container images without RHEL subscriptions
- Deploy applications on non-Red Hat platforms while keeping Red Hat support services
- Access pre-configured YUM repositories with redistributable RHEL packages
All the same, certification has specific requirements. Container images must:
- Use a supported UBI version as listed in the RHEL Container Compatibility Matrix
- Declare non-root users unless they need privileged access
- Keep a “licenses” directory with software terms and conditions
- Skip RHEL kernel packages or components with critical vulnerabilities
Comparing Traditional vs Bootable Containers
Traditional application containers run isolated services within a host operating system. Bootable containers represent the next step in container technology and offer several advantages:
Bootable containers create unified DevOps workflows. Teams can use similar CI/CD pipelines, image scanning tools, and deployment processes for both application and operating system containers. This standardization makes infrastructure management less complex.
These containers also support various disk image formats:
- Raw format for virtualization tools
- QCOW for QEMU environments
- ISO for bootable media creation
- VMDK for VMWare platforms
- AMI for Amazon EC2 deployments
Bootable containers aid transactional updates by applying system changes directly from container images. This approach keeps system consistency intact and allows quick rollbacks when needed. The result is better system reliability and easier maintenance.
Setting Up Your Build Environment
You need to set up a reliable development environment to create bootable containers. The first step is to set up Podman Desktop and configure the RHEL subscription manager. This will give you access to the base images and packages you need.
Installing Podman Desktop
Podman Desktop gives you an easy-to-use interface to manage containers and Kubernetes from your local environment. Podman runs without a daemon and focuses on security through its rootless model. This means containers run with limited privileges by default.
Here’s how to install it:
- Download Podman Desktop from the official website (podman-desktop.io)
- Run the installer appropriate for your operating system
- Initialize Podman, which creates a Linux VM in the background
- Verify the installation by checking available commands through the interface
Podman Desktop has extensions that make migration from Docker environments simple. This makes it a great choice for teams moving their container processes. The platform also combines smoothly with other cloud-native tools like Buildah and Skopeo.
Configuring RHEL Subscription Manager
Your host system needs proper registration and entitlement before you can work with RHEL Docker images. The subscription manager keeps track of your purchased products and manages system entitlements.
Here’s how to configure your subscription:
- Register your system using the following command:
subscription-manager register –username <username> –password <password>
- After registration, attach an appropriate subscription:
subscription-manager attach –auto
Systems behind corporate firewalls need HTTP-based proxy settings configured before registration. Once registered, refresh the subscription information using:
subscription-manager refresh
The subscription service creates specific certificates for authentication:
- An identity certificate for system registration
- Product certificates for installed Red Hat products
- Subscription certificates for associated subscriptions
The system automatically inherits entitlements from the RHEL host during container builds. This allows access to repository packages . Make sure these repositories are enabled:
subscription-manager repos –enable rhel-server-rpmssubscription-manager repos –enable rhel-server-extras-rpms
Development environments that need specific packages should enable the CodeReady Linux Builder repository:
subscription-manager repos –enable codeready-builder-for-rhel-$(arch)-rpms
This complete setup creates a foundation to build and manage bootable containers. Podman Desktop’s security-focused architecture and properly configured RHEL subscriptions work together to give reliable access to resources throughout development.
Creating Your First Bootable Container
You just need to pay attention to container image structure and testing procedures when building bootable containers. Podman Desktop’s easy-to-use interface helps developers create and verify RHEL-based bootable containers faster.
Writing the Containerfile
A bootable container’s foundation starts with its Containerfile configuration. Start by specifying a bootc-compatible base image:
FROM registry.redhat.io/rhel9/rhel-bootc:latestENV APP_VERSION=1.0.0
The /var directory structure needs special attention for system configuration. Bootc systems keep /var as a machine-local mount, so web content should go to /usr/share/www instead. You’ll need to update service configurations to match these filesystem changes:
RUN mv /var/www /usr/share/www && \ sed -ie ‘s,/var/www,/usr/share/www,’ /etc/httpd/conf/httpd.conf
Bootc images have specific requirements:
- Read-only content belongs under /usr directory
- System services need configuration through systemd units
- File permissions and ownership must be right
- Run bootc container lint at the end of build
Building with Podman Desktop
The graphical interface of Podman Desktop makes image construction straightforward. Head to the Images component page and set these build parameters:
- Containerfile path
- Build context directory
- Image name with registry prefix
- Build arguments (if needed)
- Target platform selection
Your build process should follow these security practices:
- Skip unnecessary package installation
- Keep multi-line arguments in alphabetical order
- Use exact base image versions
- Structure layers properly
Testing the Container Image
The container image needs testing after the build. Start it through Podman Desktop’s interface:
podman run -it –rm –name mybootc quay.io/<namespace>/<image>:<tag> /bin/bash
The -i and -t flags create an interactive terminal session. The –rm flag removes the container after exit.
Container health verification includes:
- Systemd service status checks
- Filesystem permission verification
- Network connectivity tests
- Log output review
Bootable containers need these specific checks:
- Read-only directories mount correctly
- Systemd handles service initialization
- Network interfaces work properly
- Hardware support matches requirements
Podman Desktop gives you these testing tools:
- Log inspection
- Port forwarding setup
- Resource usage tracking
- Container health monitoring
Push your tested image to a container registry. This step lets you update systems directly from the registry and keeps deployments consistent. Bootable containers work in many scenarios, from bare metal to cloud setups, which makes proper testing vital for reliable operation.
Generating Bootable Disk Images
Your bootable container needs the right disk image format after configuration. The bootc-image-builder makes this process easier by offering multiple output formats suited for different deployment scenarios.
Choosing the Right Image Format
The bootc-image-builder creates disk images in several formats that work in a variety of deployment environments:
- Raw Format: A versatile option compatible with numerous virtualization tools
- QCOW2: Optimized for QEMU environments with copy-on-write capabilities
- ISO: Perfect for creating bootable media through tools like Balena Etcher
- VMDK: Designed for VMware Workstation or ESXi deployments
- AMI: Specifically crafted for Amazon EC2 virtual servers
Your target environment’s requirements should guide format selection. QCOW2 format works best if storage efficiency through copy-on-write matters most. Raw images prove more suitable when compatibility is the priority.
Build Process Overview
The process starts with setting up the bootc-image-builder environment. Podman Desktop’s Bootable Containers extension provides access to the build interface through the Extensions menu in the left navigation bar. The Catalog button helps install required components.
Essential build parameters include:
- Source bootable container image selection
- Output folder designation
- Disk image format specification
- Platform architecture configuration
A configuration file (config.toml) helps customize deployments with specific settings:
[[user]]name = “ansible”password = “custompass”groups = [“wheel”]
The bootc-image-builder performs these tasks during the build:
- Converts container image to bootable format
- Establishes partition structure
- Configures bootloader settings
- Applies user-defined customizations
Verifying Image Integrity
A proper verification confirms your bootable disk image’s integrity. The process begins with checksum computation of downloaded files. These steps improve security:
- Download associated checksum and signature files
- Check if ISO checksum matches the original
- Confirm GPG signatures on verification files
This command verifies checksums using SHA256:
sha256sum -c SHA256SUM
The gpgv utility offers a simpler way to validate GPG signatures compared to standard gpg tools. This step confirms both file integrity and authenticity.
The verification should also include these critical checks:
- Immutability: Read-only mounting of system directories
- Atomic Updates: Update processes from container registry
- Boot Process: Bootloader configuration
- System Services: Service initialization through systemd
The generated image needs testing in your target environment. QEMU provides quick validation for virtual machines:
qemu-system-x86_64 -drive file=linux.img,index=0,media=disk,format=raw
Note that bootable containers keep /etc and /var as writable directories while other system paths stay read-only. This approach ensures consistent systems through atomic updates from container registries.
Deploying and Managing Images
Managing bootable containers just needs a systematic way to handle deployments and updates. Podman Desktop’s user-friendly interface helps system administrators handle both local and cloud-based deployments. They can also keep their update strategies consistent.
Local Deployment Steps
You need proper image validation to start the deployment process. Set up the bootc-image-builder to create disk formats that match your target environment. Here are the key steps you need:
- Select output folder location
- Choose disk image type
- Configure source bootable container
- Execute build process through Podman Desktop
Once you generate the image, check system health through systemd service checks and filesystem validation. Your main focus should be on /etc and /var directories since they stay writable while other system paths remain read-only.
You can use tools like dd to write images directly to USB drives for bare metal installations. This quick method helps you deploy across physical hardware without losing image integrity.
Cloud Platform Integration
RHEL bootable containers combine smoothly with major cloud providers. The system works with many deployment scenarios through specialized disk image formats:
- Raw images for general virtualization
- QCOW format for QEMU environments
- VMDK files for VMware platforms
- AMI formats for Amazon EC2 deployments
Cloud environments need proper certificate management for secure registry access. If you don’t have direct internet access, set up local container registries to keep deployments running smoothly.
Update Management Strategy
Update management works with both automated and manual approaches. The system turns on automatic updates through systemd service and timer units by default. These parts check container registries regularly and apply changes through transactional operations.
Controlled environments with scheduled maintenance windows let administrators:
bootc upgrade # Fetch and stage updatesbootc rollback # Revert to previous deploymentbootc switch # Change container image source
The container registry acts as the source of truth for system updates. This setup will give you:
- Transactional in-place updates
- Automated rollback capabilities
- Health check integration
- Event-driven update triggers
Complex deployment scenarios might need you to turn off automatic updates and use manual control through the bootc utility. This way you retain control over update timing and validation steps.
Your system stays reliable because updates follow these rules:
- Changes happen only after successful validation
- Previous deployments stay available for rollback
- System services keep running during update staging
- Reboots wait for update verification
Podman Desktop’s monitoring features help administrators track container events and system health metrics. You can see everything happening and make sure services stay available throughout the deployment lifecycle.
Conclusion
RHEL bootable containers represent a major step forward in operating system deployment and management. This piece explores everything in building and managing these containers using Podman Desktop, from simple setup to deployment.
Containerization technology combined with complete operating system deployment brings remarkable advantages. Standard OCI container tools handle bootable containers, and atomic updates maintain system consistency. Support for multiple disk image formats, including raw, QCOW, ISO, VMDK, and AMI, makes these containers adaptable to different deployment scenarios.
Security plays a central role in the entire process. Podman Desktop’s rootless model, proper RHEL subscription management, and systematic verification procedures protect deployments effectively. Bootable containers’ immutable nature, where most directories stay read-only except /etc and /var, creates an additional security layer.
This technology optimizes DevOps workflows substantially. Teams now use similar tools and processes for both application and operating system containers. This reduces complexity while keeping reliability high. Quick rollback capabilities and atomic updates directly from container registries will give a stable system management experience.
RHEL bootable containers are a great way to get efficient, secure, and consistent operating system deployment methods for organizations. Their standardized approach to building, shipping, and running complete operating systems shows substantial progress in container technology.