Linux distribution

Alpine Linux VMs on Apple Silicon Macs

Run mvz create alpine dev and MacVisor downloads Alpine Linux 3.24.3's aarch64 cloud-init image, verifies it, and makes a VM with your account and SSH keys. Alpine runs OpenRC rather than systemd, so MacVisor offers containerd and Docker on it, but not Podman or k3s.

  • Apple Silicon (M1 or later)
  • macOS 27 on the Mac
  • Alpine Linux 3.24, ARM64

30 days free, no key or payment details. Apple Silicon with macOS 27.

A stylised MacVisor window with a small Alpine Linux VM running nerdctl in its terminal.

Create an Alpine VM

In the app, choose New VM → Linux → Cloud Image → Alpine Linux 3.24.3. From Terminal:

mvz create alpine dev                       # Alpine Linux 3.24.3 (alias: alpine)
mvz shell dev --start

The image is alpine-3.24.3-aarch64-cloudinit-r0.qcow2 from dl-cdn.alpinelinux.org, pinned to a SHA-512 digest in the signed catalogue.

What you get

Your account has your Mac user name and UID, your SSH keys and sudo without a password. The MacVisor Agent runs as an OpenRC service, and automatic port forwarding works through it as on other distributions.

Alpine is built on musl libc and BusyBox. Use it to build and test software against musl, to reproduce what runs in Alpine-based container images, or when you want a VM that needs little memory and disk.

Containers

RuntimeOn Alpine
containerdAlpine's containerd, nerdctl, buildkit and CNI packages, as system services. Use sudo nerdctl.
DockerAlpine's docker package, with Compose and Buildx where Alpine has them, and your account in the docker group.
PodmanNot offered
k3sNot offered
mvz create alpine ctr --runtime containerd
mvz exec ctr --start --wait -- sudo nerdctl run --rm alpine uname -m

A Docker VM's API is forwarded to the Mac as the macvisor-<vm> docker context, as on other distributions. MacVisor also starts OpenRC's cgroups service, which containerd and Docker need there.

What differs from systemd distributions

  • The account is unlocked. cloud-init leaves a passwordless account locked, and Alpine's sshd, built without PAM, refuses even key logins to a locked account. MacVisor marks it as having no password instead, so your SSH keys work.
  • The shell is /bin/sh. The image has no bash. sudo apk add bash adds it.
  • The package index can fail on first boot. apk sometimes runs before the network, DNS or clock is ready and reports a TLS error. MacVisor retries it for up to a minute and a half before a runtime install.
  • The power button may be ignored. Without acpid, Alpine doesn't act on the virtual power button. Shut Down and mvz stop then ask the MacVisor Agent to shut the guest down.

FAQ

Common questions

More in the documentation and known limitations.

Which container runtimes work on Alpine in MacVisor?

containerd and Docker Engine. Podman and k3s aren't offered, because Alpine has no systemd: Podman's API socket and k3s's service didn't work under OpenRC in testing. The New VM form hides them, and mvz create refuses them.

Why do I need sudo for nerdctl on Alpine?

On other distributions MacVisor sets containerd up rootless, which needs systemd user sessions. Alpine has none, so containerd, BuildKit and nerdctl come from Alpine's packages and run as system services, and you use sudo nerdctl.

What shell does my account get on Alpine?

/bin/sh, BusyBox's shell, because Alpine's image has no bash. MacVisor switches the account to bash only when the image already has it. Install bash with apk and change your shell if you want it.

Which Alpine version is in the catalogue?

Alpine Linux 3.24.3, as alpine-3.24 with the alias alpine. It's a fixed build, checked against a pinned SHA-512 digest, and MacVisor updates move it forward.

Run your Mac like a virtualization host.

macOS, Windows 11, Linux and FreeBSD VMs that keep running with the app closed, with snapshots, networks, backups and the mvz command line.