An open API service indexing awesome lists of open source software.

https://github.com/containers/crun-vm

An OCI Runtime that enables Podman, Docker, and Kubernetes to run VM images.
https://github.com/containers/crun-vm

Last synced: 2 months ago
JSON representation

An OCI Runtime that enables Podman, Docker, and Kubernetes to run VM images.

Awesome Lists containing this project

README

        

# 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:

```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).

[bootable container]: https://containers.github.io/bootable
[Docker]: https://www.docker.com/
[Kubernetes]: https://kubernetes.io/
[KubeVirt]: https://kubevirt.io/
[OCI Runtime]: https://github.com/opencontainers/runtime-spec/blob/v1.1.0/spec.md
[Podman]: https://podman.io/
[systemd]: https://systemd.io/