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.
- Host: GitHub
- URL: https://github.com/containers/crun-vm
- Owner: containers
- License: gpl-2.0
- Created: 2024-01-02T19:14:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-13T22:12:20.000Z (about 1 year ago)
- Last Synced: 2024-04-14T13:01:15.826Z (about 1 year 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/