This project is inspired by and a rewrite of lima-vm.
The major difference is macvz uses macOS new Virtualization API instead of QEMU for spinning up VM's.
brew install mac-vz/tap/macvz
to install macvzmake all
to compile and build binarymake install
to install the binary to /usr/localTo start a Docker VM, run the following command
macvz start https://raw.githubusercontent.com/mac-vz/macvz/main/examples/docker.yaml
Execute the following command in macOS host to update docker.sock location
export DOCKER_HOST=unix://${HOME}/.macvz/docker/sock/docker.sock
That's it !!
To get shell access to a running VM,
macvz shell docker
To stop a running VM,
macvz stop docker
The following table contains result summary of some different workloads tested against macvz and colima
Workload | Summary | macvz | colima |
---|---|---|---|
Sequential Reads | macvz handles 8x higher operations | 620K | 77K |
Random Reads | macvz handles 3x higher operations | 82K | 25K |
Random Reads/Writes | macvz handles 3x higher operations | 37K/12K | 14K/4K |
Sequential writes | macvz performs almost equally | 37K | 38K |
Random writes | macvz performs almost equally | 22K | 30K |
Workload | Summary | macvz | colima |
---|---|---|---|
Sequential Reads | macvz handles 8x more data | 2500MB | 306MB |
Random Reads | macvz handles 3x more data | 320MB | 98MB |
Random Reads/Writes | macvz handles 3x more data | 140MB/50MB | 60MB/20MB |
Sequential writes | macvz performs almost equally | 145MB | 150MB |
Random writes | macvz performs almost equally | 90MB | 110MB |
Check out Wiki page Why use virtualization framework for detailed information
⚠️ The project is still in early stage development and may introduce breaking changes.