BCVK(8)
β¨ bcvk(8) β the bootable-containers-and-vibes toolkit β¨
okay bestie, gather round, because this one is literally the main character of your local VM life π
π NAME
bcvk β a toolkit for bootable containers and (local) virtualization. she does both. she contains multitudes. π¦
πΈ SYNOPSIS
bcvk [-h|--help] <subcommands>
π« DESCRIPTION
bcvk helps you launch bootc containers using local virtualization for development and CI workflows, fr fr. You build containers with whatever tool you're obsessed with (podman, docker, etc), and then you let bcvk boot them as virtual machines. build container β boot it as a VM β slay. π₯
heads up bestie: bcvk is designed for local development and CI environments, not for running production servers. she's a vibes machine, not a prod server. keep her in the group chat, not in the datacenter. π
π Quick Start
The fastest way to boot a bootc container image is with bcvk ephemeral run-ssh:
bcvk ephemeral run-ssh quay.io/fedora/fedora-bootc:42
This boots the container as a VM and drops you into an SSH session. And the moment you exit that SSH session, the VM is automatically cleaned up. no mess, no leftovers, she cleans up after herself. iconic behavior honestly π
π οΈ Build and Test Workflow
A typical development workflow combines container builds with ephemeral VM testing, like so:
# Build your bootc container
podman build -t localhost/myimage .
# Boot it as a VM and SSH in (auto-cleanup on exit)
bcvk ephemeral run-ssh localhost/myimage
# Or run in background for longer testing
bcvk ephemeral run -d --rm -K --name testvm localhost/myimage
bcvk ephemeral ssh testvm
# ... test, then stop the VM when done
podman stop testvm
the way that "boot it, test it, forget it ever existed" pipeline hits. chef's kiss. πβ¨
βοΈ Ephemeral vs Libvirt
bcvk provides two ways to run bootc containers as VMs, and ngl they are giving very different energies:
bcvk ephemeral runs stateless VMs managed by podman. The VM boots directly from the container image's filesystem via virtiofs with no disk image creation, which makes startup very fast. Ideal for quick iteration and CI pipelines. lowkey the speedrun category πβοΈ
bcvk libvirt creates stateful VMs managed by libvirt with persistent disk images. These VMs survive reboots and support the full bootc upgrade workflow. Useful for longer-running local development or testing upgrade scenarios. the "I want to keep this one" option π
π SUBCOMMANDS
bcvk-ephemeral(8)β Manage stateless VMs via podman (fast startup, no disk images)bcvk-images(8)β Manage and inspect bootc container imagesbcvk-to-disk(8)β Install bootc images to persistent disk imagesbcvk-libvirt(8)β Manage stateful VMs via libvirt (persistent disk images)
π EXAMPLES
Test a public bootc image interactively:
bcvk ephemeral run-ssh quay.io/centos-bootc/centos-bootc:stream10
Build and test a local image:
podman build -t localhost/mybootc .
bcvk ephemeral run-ssh localhost/mybootc
Run a background VM with SSH access:
bcvk ephemeral run -d --rm -K --name dev quay.io/fedora/fedora-bootc:42
bcvk ephemeral ssh dev
Create a libvirt VM with persistent disk:
bcvk libvirt run --name myvm quay.io/centos-bootc/centos-bootc:stream10
bcvk libvirt ssh myvm
π«Ά SEE ALSO
bcvk-ephemeral(8), bcvk-ephemeral-run(8), bcvk-ephemeral-run-ssh(8), bcvk-libvirt(8), bcvk-to-disk(8), bootc(8)
the whole friend group, all linked up. iykyk π
β VERSION
v0.21.0
and that's the whole page bestie, version v0.21.0, manual page for bcvk(8) β go boot something cute and remember: she's for dev and CI, not for prod, no cap. mwah πβ¨π
π¦ where this page comes from
- fedora 43: bcvk 0.21.0-1.fc43 Β· Apache-2.0 OR MIT
- fedora 44: bcvk 0.21.0-1.fc44 Β· Apache-2.0 OR MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms