Jorge Turbica / blog · Blog ← All articles ES · Leer en español
Technologies

Repo of the day: Kiri, a Rust container runtime that starts containers in 2.5 ms

Kiri replaces Docker Desktop with a tiny VM behind the same Docker API. It promises 2.5 ms container starts, but it is nine days old and in beta.

A container that starts and exits in 2.55 ms through the Docker API, versus 213 ms on Docker Desktop. With that number in its README, Kiri has gathered 1,470 GitHub stars since the repository was created on 2 November 2026, and it shipped version 0.2.0 on 10 November.

What Kiri is

Kiri is a container runtime for macOS, Windows and Linux, written in Rust, that aims to replace Docker Desktop and OrbStack without changing your tools. It speaks the Docker Engine API, so the docker CLI, Compose, buildx and docker login work against it just as they do against Docker.

The interesting part is how it gets there. On macOS and Windows it runs containers inside a single small Linux VM; on Linux, straight on the host kernel. The VM boots a custom kernel of about 10 MB, and its PID 1 is a Rust agent of roughly 900 KB that starts each container with a single clone3 call into its namespaces and cgroup. There is no runc, no shim and no dockerd. The Kiri daemon on the host talks to that agent over vsock.

That design explains the project's other figures: the VM sleeps after 60 seconds idle, the daemon sits at about 15 MB and the VM wakes in about 0.15 s. It also brings local domains (http://<name>.kiri.local, with HTTPS signed by Kiri's own certificate authority), a single-node k3s Kubernetes cluster, Linux machines with your user and your /Users, amd64 images on Apple silicon through Rosetta and, since 0.2.0, USB device passthrough to containers (in beta).

The licence is Apache-2.0. The guest kernel is Linux (GPL-2.0), and the Kiri name and logo are excluded from the licence: forks are welcome under a different name.

How to use it

You install it with each platform's package from runkiri.com/releases: a .dmg for macOS 14 or later, an .msi for Windows 10 and 11 (it runs through WSL 2) and a .deb or .rpm for Linux. On Linux there is also a 2.7 MB kiri-lite package that ships only the engine, without the window. The first time it opens, it creates a Docker context called kiri:

bash
docker --context kiri run --rm alpine echo hello
docker --context kiri compose up -d

kiri k8s start      # single-node k3s as the "kiri" kubectl context
kiri import         # bring images, volumes and containers from Docker Desktop or OrbStack

Docker's commands also work as kiri run, kiri ps or kiri compose up, always targeting Kiri. To check the numbers on your own machine, kiri bench reruns the benchmark.

What I like and what I don't

I like that it does not reinvent the interface: the Docker context, Compose and buildx stay exactly as they were, and kiri import makes it cheap to try and to roll back. I also like that it publishes its benchmark method (median of 30 runs of alpine running true and being removed, with the same docker CLI for all three) and lets you rerun it. Activity is intense: 95 forks, 58 open issues and commits from 10 November itself.

What does not convince me yet is maturity. It is nine days old, its website labels it beta, and 0.2.0 fixes things as basic as the macOS VM stopping under heavy network traffic. The performance figures come from the project itself and measure starting an empty container, not build times or file I/O, which is where Docker Desktop hurts the most.

Two concrete points deserve a look before adopting it. First, the local certificate authority behind the HTTPS domains: decide whether you want your machine to trust it. Second, a limitation the project documents itself: docker build --add-host name:host-gateway fails with BuildKit, because Kiri's builder is a docker-container builder. Until the built-in builder on its roadmap arrives, you need to use the gateway IP or DOCKER_BUILDKIT=0.

Kiri vs Docker Desktop

KiriDocker Desktop
ApproachMinimal VM with its own agent, no dockerd or runcDocker's own engine
Container start (API, median)2.55 ms213 ms
LicenceApache-2.0Free for businesses under 250 employees and $10M revenue; paid for larger organisations
Maturity0.2.0, beta, nine days oldIndustry standard

Start-up figures: Kiri's own published measurements from its README. OrbStack scores 380 ms on the same test.

When to use which. Docker Desktop is still the choice for teams that need support, a tool their company has approved, or its full extension ecosystem. Kiri makes sense on a personal laptop or in projects with lots of short-lived containers, such as integration tests that spin databases up and tear them down, and for anyone looking for an openly licensed alternative in an organisation that would otherwise pay for Docker Desktop. It has no place in production: it is a desktop tool.

Sources

Jorge Turbica

Software Engineer and SRE. I write about the real challenges I run into in production.

See portfolio ↗