crun-vm/README.md

108 lines
2.3 KiB
Markdown

# 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.
---
<p align="center">
<img src="docs/example.gif" width="680" />
</p>
---
<table>
<tr>
<td width="450" valign="top">
### 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
```
<p></p>
</td>
<td valign="top">
### 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).
<p></p>
</td>
</tr>
</table>
[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/