BCVK(8)

πŸ“¦
version 0.21.0 Β· 3 versions
, in fedora 43, fedora 44

✨ 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


🌈 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