-
Notifications
You must be signed in to change notification settings - Fork 27
Create bootc-setup.adoc #85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| = Getting Started with IoT Bootable Containers (bootc) | ||
|
|
||
| Since the launch of Fedora 41, Fedora IoT has supported bootable containers (bootc). | ||
| Bootable containers are similar in function to other containers (like Podman), but allow the user to boot into the container as an immutable system. | ||
| Any updates or package installs are then layered on top of the base bootc image, allowing rollbacks in the event of an issue. | ||
| Each bootc image ships with a kernel, bootloader, drivers, etc, rendering them fully bootable and not requiring a container manager (Podman, Kubernetes, etc). | ||
|
|
||
| For more information about bootable containers and how the Fedora Project plans to integrate them into the larger Fedora ecosystem, check out the https://docs.fedoraproject.org/en-US/bootc/getting-started/#_what_is_a_bootable_container[offical Fedora docs page] on bootc. | ||
|
|
||
| == Booting into a Bootable Container from an Existing IoT System | ||
|
|
||
| On an existing Fedora IoT install, a user can download and boot into a containerized image via the following: | ||
|
|
||
| At the Fedora IoT command line, the following will download, setup, and configure the bootloader to boot into the latest bootc image on next boot: | ||
|
|
||
| ---- | ||
| sudo bootc switch quay.io/fedora/fedora-iot:latest | ||
| ---- | ||
|
|
||
| You can also use the Fedora Project registry to install a bootable container: | ||
|
|
||
| ---- | ||
| sudo bootc switch registry.fedoraproject.com/fedora-iot:latest | ||
| ---- | ||
|
|
||
| The following can be used to ensure the image has been downloaded and set for boot. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please put an example output here rather than saying "Look for XXX" |
||
| Look for the `image:` and `version:` fields under `rollback:`. | ||
| These will show where the image was downloaded from and the version. | ||
| Also, check that the `rollbackQueued:` field shows `true`. | ||
|
|
||
| ---- | ||
| sudo bootc status | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again, put sample output. |
||
| ---- | ||
|
|
||
| Then, reboot into the image: | ||
|
|
||
| ---- | ||
| sudo reboot | ||
| ---- | ||
|
|
||
| When the system reboots, it will automatically reboot into the newly installed bootable container. | ||
| You can still manually choose to boot into the original ostree image by selecting the image with the arrow keys at the grub menu. | ||
| Once the bootable container image is booted, you will have to change into the terminal window using Ctrl-Alt-F2. | ||
| At the login, enter your username and password. | ||
| From here, you can again run `sudo bootc status` to ensure that the system is now booted into the bootable container. | ||
|
|
||
| == Updating the Bootable Container Image | ||
|
|
||
| You can update the current bootable container to the latest by running the following: | ||
|
|
||
| ---- | ||
| sudo bootc upgrade | ||
| ---- | ||
|
|
||
| == Rolling Back to a Previous Bootable Container | ||
| In the event of an issue with a bootable container, you can easily rollback to a previously installed image. | ||
|
|
||
| ---- | ||
| sudo bootc rollback | ||
| ---- | ||
|
|
||
| The system will now automatically boot into the previous bootable conatiner on next boot. | ||
|
|
||
| == Installing/Layering Packages onto the Bootable Container | ||
|
|
||
| Installing packages is the same as on an ostree Fedora IoT image and retains the same rpm-ostree functionality: | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That is incorrect, you use dnf. |
||
|
|
||
| ---- | ||
| sudo rpm-ostree install htop | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Needs to be updated. |
||
| ---- | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a bit weird, you would/could still use a container manager such as podman to maintain applications, the container in the bootc case is mechanism for maintaining the base OS.