bootc
Manage and update operating system images
TLDR
Show deployments in the order they will appear in the bootloader
Check if any updates are available
Prepare a new update and reboot into it
Change OS base to new container image
Reboot into the previous ostree deployment
SYNOPSIS
bootc
PARAMETERS
help
Show help message and exit.
install
Install the bootc image on the target device.
update
Update the bootc image.
status
Show the current status of the bootc system.
rollback
Rollback to a previous version of the bootc image.
rebase
Rebase to a new base image.
--repo
Specify the container registry URL.
--version
Show version and exit.
DESCRIPTION
bootc is a tool designed to manage and deploy operating system images as container images on bare metal or virtualized environments. It leverages container image technologies like OCI (Open Container Initiative) to streamline OS updates and rollbacks, treating the entire operating system as a single, verifiable unit. This approach enables atomic updates and simplifies the management of complex system configurations.
Bootc works by creating a bootable disk image from a container image. When the system boots, it will run directly from the container image content (typically stored read-only via OSTree), with the option of layering in local modifications. This allows for reproducible and verifiable system deployments. Bootc aims to reduce the complexity of OS management, making it easier to handle upgrades and ensure consistency across multiple machines. It simplifies the process of creating and managing immutable or mostly immutable systems, which is crucial for reliability and security.
CAVEATS
Bootc typically relies on OSTree and other technologies to manage the underlying filesystem. It's generally geared towards systems that are configured to be mostly immutable, with changes applied as layers on top of a read-only base image.
BOOTC AND IMMUTABLE INFRASTRUCTURE
Bootc is heavily aligned with the concept of immutable infrastructure. By treating the OS as a single container image, updates become atomic operations. If an update fails, a rollback can be easily performed, returning the system to a known good state. This reduces the risk of partial failures and improves system resilience.
USE CASES
Bootc is suited for various use cases:
- Edge computing: Deploying and managing OS images on edge devices.
- Container-optimized OS: Creating a streamlined OS for running container workloads.
- Production servers: Ensuring consistent and reliable deployments of server infrastructure.
- Testing environments: Rapidly provisioning and resetting test environments.
HISTORY
Bootc is a relatively new tool in the Linux ecosystem, primarily driven by the need for simpler, more reliable OS management in cloud and edge environments. Its development is focused on leveraging container technologies for the entire operating system lifecycle. The project builds upon prior art from projects like CoreOS, Fedora CoreOS, and similar initiatives aiming for immutable infrastructure. Bootc's focus on container images allows for integration with existing container registries and tooling.