Boots in ~1.1s
Custom-built 6.18 LTS kernel with only the stuff Docker actually needs - nothing else.
Status: early development · Apple Silicon only · tested on macOS 27
$ curl -fsSL http://dockma.dev/install.sh | shInstalls the latest release to ~/.local/bin, checksum-verified. Read the script before you run it.
dockma boots a minimal Linux VM with Apple's Virtualization.framework and runs a stripped-down Linux distribution with Docker Engine inside it. The macOS docker CLI communicates to the engine through a Unix socket. A launchd job keeps it running in the background.
dockma is a Docker runtime for Apple Silicon Macs, an alternative to running the engine through Docker Desktop, Colima or OrbStack. You keep using the docker CLI on your host; dockma only provides the engine behind it.
It is currently in early development : Apple Silicon only, and tested on macOS 27 so far. See the known limitations before relying on it.
Feel free to install, daily-drive and report issues, but if you need a battle-tested, production-ready alternative, consider Colima.
Custom-built 6.18 LTS kernel with only the stuff Docker actually needs - nothing else.
Your home directory is shared via virtiofs at the identical path, so -v "$PWD:/src" just works.
-p 8080:80 is reachable at localhost:8080, IPv4 and IPv6, and -p 1053:53/udp works the same way. Gone when the container stops.
--platform linux/amd64 runs x86-64 images through Rosetta for Linux.
If you want to inspect the VM, dockma has you covered.
Runs under launchd and restarts after a guest crash. dockma stop powers off cleanly; data persists.
# 1. Install the dockma CLI and its Linux guest from the latest release curl -fsSL http://dockma.dev/install.sh | sh # 2. Start the VM and point the docker CLI at it dockma start docker context use dockma docker run --rm hello-world
Needs an Apple Silicon Mac with macOS 14 or later and the docker CLI (brew install docker). The script checks the download against the release's SHA256SUMS (and its build attestation, if gh is logged in), installs dockma to ~/.local/bin and fetches the matching Linux guest. Set DOCKMA_VERSION to pin a release or DOCKMA_INSTALL_DIR to install elsewhere. Optional: Rosetta for amd64 images. If DOCKER_HOST is set (Lima does this), it overrides the context.
# 1. Build the guest kernel and initramfs (needs an existing arm64 Docker engine). make guest make install-guest # copies vm/out/* to ~/.dockma/guest/ # 2. Build, sign and install the CLI to ~/.local/bin/dockma make install # 3. Start the VM dockma start # 4. Point the docker CLI at dockma docker context use dockma # created by `dockma start` # or: export DOCKER_HOST=unix://$HOME/.dockma/docker.sock docker run --rm hello-world
Also needs Xcode with Swift 6.4, and any arm64 Docker engine with buildx for the first guest build.
$ dockma status
state: running
docker: ready (/Users/you/.dockma/docker.sock)
uptime: 12m 4s
vm: 6 CPUs, 4096 MiB, kernel 6.18.57
agent: connected 0.5.0
ports: 8080, 1053/udp
daemon: pid 55658virtiofs: $HOME, Rosetta · virtio-blk: /var/lib/docker
A lightweight daemon owns the VM and pipes the Docker, shell and port connections to a Go agent in the guest over vsock. The guest image is built reproducibly from one Dockerfile with pinned versions; the kernel and Docker downloads are sha256-checked.