containers / crun-vm

An OCI Runtime that enables Podman, Docker, and Kubernetes to run VM images.
GNU General Public License v2.0
123 stars 10 forks source link

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:



### Quick start Install crun-vm: ```console $ dnf install crun-vm ``` Launch a VM from a disk image packaged in a container: ```console $ podman run --runtime crun-vm -it \ quay.io/containerdisks/fedora:40 ``` Launch a VM from a disk image under `my-image-dir/`: ```console $ podman run --runtime crun-vm -it \ --rootfs my-image-dir/ ``` Launch a VM from a [bootable container]: ```console $ podman run --runtime crun-vm -it \ quay.io/crun-vm/example-fedora-bootc:40 ``` Set the password for a VM's default user: ```console $ podman run --runtime crun-vm -it \ quay.io/containerdisks/fedora:40 \ --password pass # for user "fedora" ``` Exec (ssh) into a VM: ```console $ 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](docs/1-installing.md) 2. [Running VMs with **Podman** or **Docker**](docs/2-podman-docker.md) 3. [Running VMs as **systemd** services](docs/3-systemd.md) 4. [Running VMs in **Kubernetes**](docs/4-kubernetes.md) 5. [**crun-vm(1)** man page](docs/5-crun-vm.1.ronn) --- ### License This project is released under the GPL 2.0 (or later) license. See [LICENSE](LICENSE).