Run VM disk images using Podman / Docker / Kubernetes.
Go to file
Alberto Faria d7455d77d8 tests: Add a bootc-cached.sh test
Signed-off-by: Alberto Faria <afaria@redhat.com>
2024-08-12 23:55:30 +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 QEMU emulator dependency names 2024-08-11 18:41:54 +01:00
embed Add --bootc-disk-size option 2024-07-11 15:31:21 +01:00
plans tests: Build test env VM image using virt-builder 2024-08-12 23:55:30 +01:00
src Revert "create: Use UEFI" 2024-08-12 23:55:30 +01:00
tests tests: Add a bootc-cached.sh test 2024-08-12 23:55:30 +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 xml-rs to 0.8.21 2024-08-06 14:57:47 +01:00
Cargo.toml fix(deps): update rust crate xml-rs to 0.8.21 2024-08-06 14:57:47 +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.