Skip to content

alessiodionisi/vmkit

Repository files navigation

VMKit

Spin up Linux VMs with QEMU.

Docker running on ARM64 Virtual Machine In the above image: Docker running on ARM64 Ubuntu Virtual Machine.

Requirements

  • Linux, macOS or Windows (needs testing) host OS.
  • QEMU installed and available in the image, you can install it with homebrew or your package manager of choice. VMKit uses qemu-img binary, qemu-system-aarch64 binary on ARM64 and qemu-system-x86_64 binary on AMD64.

Getting started

Install VMKit

The only way for now is to have a working Go environment and install VMKit by running this command:

go install github.com/alessiodionisi/vmkit@latest

Create your first vitual machine

Create a Debian 12 (Bookworm) virtual machine with 4 CPUs, 4096 mebibytes of ram and 20 GB of disk by running this command:

vmkit run debian12 -i debian:bookworm -c 4 -m 4096 -d 20

Run a command in the virtual machine

Run uname -a inside the virtual machine by running this command:

vmkit exec debian12 -- uname -a

Connect to the virtual machine via SSH

You can get SSH parameters by running this command:

vmkit ssh debian12

On Unix systems you can quickly connect via SSH by running this command:

$(vmkit ssh debian12 --command)

Commands

Create a virtual machines (vmkit run)

With vmkit run you can create and start a new virtual machine.

VMKit will automatically create a pair of SSH keys and configure the chosen system via cloud-init. If not specified, a forward to guest port 22 will be created using a free port. This will be used to access the virtual machine via SSH.

Example:

vmkit run debian12 -i debian:bookworm -c 4 -m 4096 -d 20

Available options:

  • -c, --cpu number of cpu(s) (example: -c 4)
  • -d, --disk-size disk size in gigabytes (GB) (example: -d 20)
  • -i, --image image to use (example: -i debian:bookworm)
  • -m, --memory ram in mebibytes (MiB) (example: -m 4096)
  • -p, --port-forward forward host port to the virtual machine (example: -p 8080-80, -p [host]-[guest])

Remove a virtual machine (vmkit remove|rm)

With vmkit remove or vmkit rm you can remove a virtual machine.

Example:

vmkit remove debian12

Start a virtual machine (vmkit start)

With vmkit start you can start a virtual machine.

Example:

vmkit start debian12

Stop a virtual machine (vmkit stop)

With vmkit stop you can stop a virtual machine.

Example:

vmkit stop debian12

Contributing

Requirements

  • Go installed and available in the system.
  • Task installed and available in the system.

About

Spin up Linux VMs with QEMU

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages