Hacker News new | ask | show | jobs
by mathfailure 775 days ago
I don't understand how it works.

Did I guess it right that it basically processes Containerfile and instead of producing a .tar artifact (which is what container images usually are) it produces .qcow2/.ami/.raw/.iso/.vmdk file which in case of .qcow2/.raw/.vmdk can be used by a virtualization software to start up a VM with a disk mounted from that file?

Will the changes made inside a session with such a VM persist? or will they get lost (which is the default behavior with containers)?

Container's filesystem may be as narrow as a single binary file, surely a VM with such a filesystem won't be able to boot - where will it take the OS (with the kernel, drivers and other stuff) from?

2 comments

1) you create an container image based on the upstream image that supports bootc, using a Containerfile that serves what ever purpose you want.

2) you push that container image to some registry

3) you use the bootc image container to create an qcow file from the image you have built (or you install the image on a bare metal system)

4) you boot up the virtual machine or bare metal system, which now includes "bootc" utilties too

5) from this point on you can update the container image you have created in step 1) and you automatically roll forward the booted virtual machine or bare metal system to the latest image you have relased (or rollback, if your updated image breaks stuff) using the included bootc utility

Currently the image that supports this seems to be limited to centos:stream9, or rhel9:

https://www.redhat.com/en/blog/image-mode-red-hat-enterprise...

There is also a fedora-bootc

registry.fedoraproject.org/fedora-bootc:latest

Thanks for the answer.

> Begin by confirming that your system is subscribed to get RHEL content.

> $ sudo subscription-manager register

nope.

I think you are supposed to use their base images.
so it is only bootc-enabled container https://centos.github.io/centos-bootc/

So only CentOS? Would it be possible to run that with firecracker? If that is the case, then wouldn't it be better to just run a Docker/container file in a firecracker vm. It will be more isolation, and easier scripting and networking?

Using bootc-image-builder (https://github.com/osbuild/bootc-image-builder) You can convert a bootc image into multiple different formats including vmdk, iso, raw, qcow2 ...
I’m not sure how exactly you turn a Dockerfile into a Firecracker VM, but I suppose this is an alternative method to that.

Surely you can even boot a bootc-enabled container image like this on a Firecracker MicroVM.

registry.redhat.io/rhel9/rhel-bootc registry.redhat.io/rhel9/rhel-bootc quay.io/centos-bootc/centos-bootc

Are currently available, but since this is an open source project, we look forward to other distros creating bootc images.

I meant registry.fedoraproject.org/fedora-bootc