Run VM disk images using Podman / Docker / Kubernetes.
Go to file
renovate[bot] a8851850a4 fix(deps): update rust crate camino to 1.1.10
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 00:11:28 +01:00
.fmf Reinstate testing farm tests 2024-04-28 16:56:11 +01:00
.github Revert to minidom 0.15 and MSRV 1.74 2024-07-24 12:15:07 +01:00
docs docs: Fix some links 2024-10-04 15:16:23 +01:00
embed Don't add selinux=0 karg to disk images generated from bootc containers 2024-10-04 14:37:34 +01:00
plans List Podman before Docker everywhere for consistency 2024-07-17 23:11:26 +01:00
src exec: Drop unnecessary borrow 2024-10-04 15:21:55 +01:00
tests tests: Fix home path for Fedora bootc test image 2024-10-04 18:07:45 +01:00
util Use make in scripts instead of cargo-build 2024-07-18 19:25:01 +01:00
.editorconfig .editorconfig: Use 2-space indentation for XML files 2023-12-11 12:52:08 +00:00
.gitignore Revamp docs 2024-07-17 23:11:26 +01:00
.packit.yaml List Podman before Docker everywhere for consistency 2024-07-17 23:11:26 +01:00
Cargo.lock fix(deps): update rust crate camino to 1.1.10 2025-06-03 00:11:28 +01:00
Cargo.toml fix(deps): update rust crate camino to 1.1.10 2025-06-03 00:11:28 +01:00
LICENSE Relicense as GPLv2 or later 2023-12-15 16:35:35 +00:00
Makefile Revamp docs 2024-07-17 23:11:26 +01:00
README.md Revamp docs 2024-07-17 23:11:26 +01:00
build.rs Link against libselinux 2023-12-22 01:10:36 +00:00

README.md

The crun-vm OCI Runtime

crun-vm is an OCI Runtime that enables Podman, Docker, and Kubernetes to run QEMU-compatible Virtual Machine (VM) images. This means you can:

  • Run VMs as easily as you run containers.
  • Manage containers and VMs together using the same standard tooling.


Quick start

Install crun-vm:

$ dnf install crun-vm

Launch a VM from a disk image packaged in a container:

$ podman run --runtime crun-vm -it \
    quay.io/containerdisks/fedora:40

Launch a VM from a disk image under my-image-dir/:

$ podman run --runtime crun-vm -it \
    --rootfs my-image-dir/

Launch a VM from a bootable container:

$ podman run --runtime crun-vm -it \
    quay.io/crun-vm/example-fedora-bootc:40

Set the password for a VM's default user:

$ podman run --runtime crun-vm -it \
    quay.io/containerdisks/fedora:40 \
    --password pass  # for user "fedora"

Exec (ssh) into a VM:

$ podman exec -it --latest -- --as fedora

Major features

  • Control VM CPU and memory allocation.
  • Pass cloud-init or Ignition configs to VMs.
  • Mount directories into VMs.
  • Pass block devices through to VMs.
  • Expose additional disk images to VMs.
  • Forward ports from the host to VMs.
  • podman|docker|kubectl exec into VMs.

Documentation

  1. Installing crun-vm
  2. Running VMs with Podman or Docker
  3. Running VMs as systemd services
  4. Running VMs in Kubernetes
  5. crun-vm(1) man page

License

This project is released under the GPL 2.0 (or later) license. See LICENSE.