DOCKER

Compose

docker compose runs against Kiri like any other Docker client: your compose.yaml doesn’t change. Each service is reachable from the Mac by name, and Kiri’s window shows a project’s containers together, so you can start, stop or remove the whole project at once.

What works

Command or feature Notes
docker compose up With -d, ports, bind mounts, named volumes and depends_on.
docker compose down -v removes the project’s volumes too.
docker compose ps, logs, exec
docker compose events Kiri reports container, image, network and volume events as Docker does.
Several networks A service can be on more than one network, as in the example below.

kiri compose up and the other kiri compose commands do the same on Kiri, whichever docker context is selected.

services:
  db:
    image: redis:7-alpine
    networks: [back]
  app:
    image: redis:7-alpine
    command: sh -c "sleep 1; redis-cli -h db ping; sleep 30"
    networks: [front, back]
networks:
  front: {}
  back: {}

Service names

Inside a project, services find each other by service name, the way Compose expects: Compose creates a network for the project, and Kiri’s DNS on that network answers with each service’s address. A web service can reach its cache at cache:6379.

From the Mac, a running service answers at http://<service>.<project>.kiri.localhost with no setup, and at http://<service>.<project>.kiri.local once you turn local names on. For a project called myapp, the web service is http://web.myapp.kiri.local. HTTPS works on the same names. To pick a name of your own, give the service a dev.kiri.domain label:

services:
  web:
    image: nginx
    labels:
      dev.kiri.domain: api.myapp
The MacKiri’s VMBrowserweb.myapp.kiri.localKiri’s domain routerpicks the container by Hostproject network for myappwebservice of myappcacheservice of myapp127.0.0.1:80relaycache:6379by service name
One Compose project. The browser on the Mac reaches web by its name through Kiri's domain router; web reaches cache by its service name on the project's network.

Domain names explains how names reach a container’s HTTP port, and HTTPS the certificates.

Projects in Kiri’s window

Kiri’s window groups containers by their Compose project. A project shows as one row with its name and how many of its containers are running, and its containers sit under it; click the row to fold them away. Running services that publish a port show their name, so you can open them from the list.

Kiri
ContainersImagesVolumesNetworksSettings

Containers

▾ myappCompose · 2 of 3 runningStart allStop all⋯
myapp-web-1web.myapp.kiri.localUp 5 minOpenStop
myapp-cache-1redis:7-alpineUp 5 minStop
myapp-migrate-1myappStoppedStart
A Compose project in the Containers list. Start all and Stop all are on the project's row; Restart all and Remove project are in its ⋯ menu.
Action What it does
Start all Starts the project’s containers that aren’t running. Shown while any are stopped.
Stop all Stops the ones that are running. Shown while any are.
Restart all Restarts the running ones.
Remove project Removes the project’s containers, with their anonymous volumes. Networks and named volumes stay; docker compose down removes those.

Each container still has its own page, with its details, logs, a command line and its files. See The window.

© 2026 Kiri · runkiri.com