DOCKER
Builds
docker build and docker buildx build work with Kiri. The build runs in BuildKit, which itself runs as a container in Kiri, and the finished image is loaded into Kiri so you can run it straight away.
The kiri-build builder
When you open Kiri.app, kiri setup creates a buildx builder called kiri-build on the kiri context and makes it that context’s default. It uses buildx’s docker-container driver, with default-load=true, so every build ends up in docker images. Kiri.app bundles the buildx plugin it needs.
$ kiri setup
…
docker build uses BuildKit in Kiri (builder `kiri-build`)If the daemon wasn’t answering yet when setup ran, Kiri’s window creates the builder once Kiri is running. After that, build as you always have:
docker build -t myapp .
docker run --rm myapp
What happens in a build
buildx starts BuildKit as an ordinary container in Kiri, with a name that starts with buildx_buildkit_kiri-build, and talks to it through the Engine API. BuildKit pulls the base images and runs your RUN steps inside Kiri’s VM, with network access. When the build is done, buildx loads the image into Kiri, the same way docker load does.
Stopped when idle
BuildKit’s container would otherwise run until something stops it, and keep the VM awake for good. So when BuildKit containers are the only ones running, nothing is executing in them, and Kiri has had no Docker requests for five minutes, Kiri stops them. The VM can then go to sleep as usual. The next build starts BuildKit again.
Stopping isn’t removing: the container stays, so it starts again with the cache from earlier builds. While other containers are running, BuildKit is left alone.
Setting it up by hand
If the kiri-build builder is missing, for example because the docker CLI you use had no buildx plugin when setup ran, create it yourself:
docker buildx create --name kiri-build --driver docker-container \
--driver-opt default-load=true --use kiri
kiri setup --uninstall removes the builder along with the rest of what setup made.
© 2026 Kiri · runkiri.com