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: about 1 year ago
JSON representation
An OCI Runtime that enables Podman, Docker, and Kubernetes to run VM images.
- Host: GitHub
- URL: https://github.com/containers/crun-vm
- Owner: containers
- License: gpl-2.0
- Created: 2024-01-02T19:14:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T22:12:20.000Z (about 2 years ago)
- Last Synced: 2024-04-14T13:01:15.826Z (about 2 years ago)
- Language: Rust
- Homepage:
- Size: 1.04 MB
- Stars: 87
- Watchers: 13
- Forks: 8
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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/