Dory: A Free, Open-Source Native macOS App for Docker & Linux Containers

Dory is a free, open-source native macOS app for Docker and Linux containers, offering a lightweight alternative to OrbStack and Docker Desktop with a shared VM approach.

What is Dory?

Dory is a free, open-source, native macOS application for managing Docker and Linux containers. It's designed as a lightweight alternative to Docker Desktop and OrbStack, built entirely with Swift and SwiftUI. The core idea is simple: instead of running one VM per container, Dory boots a single, persistent Linux micro-VM that runs all your containers. This results in significantly lower memory usage—measured at approximately 4.7× less idle memory than per-container VM approaches (e.g., ~122 MB vs ~574 MB for two containers).

Why Dory?

One VM for All Containers

Dory leverages Apple's open-source container stack to boot a single Linux micro-VM. This shared VM model is the key to its efficiency. The memory savings scale with the number of containers you run, making it ideal for developers who need to run multiple services locally.

Small and Silent

The Dory app itself is only ~6 MB. It uses approximately 0% idle CPU. There are no background indexers, no telemetry, and no unnecessary fan noise. This is a design constraint, not a future feature.

Free Forever

Dory is completely free. There are no per-seat licenses, no "commercial use" tiers, no accounts, and no sign-in required. It's licensed under GPL-3.0, with full source code available on GitHub.

Your Docker CLI Just Works

Dory serves the Docker API on ~/.dory/dory.sock and registers a dory Docker context. This means you can use docker run, docker compose, and all your existing scripts and tools without modification.

Native, Not Electron

Dory is built with Swift and SwiftUI. It provides a menu-bar agent and a full dashboard. It supports launch-at-login, light and dark mode, and has no Chromium, Node, or telemetry dependencies.

What You Get

Docker, Complete

  • Containers: Live stats, logs, embedded terminal, environment inspection. Create, start, stop, restart, and delete from the UI or CLI.
  • Images: Pull, build from a context folder, run, prune, registry sign-in, full inspect.
  • Volumes: File browser included.
  • Networks: Subnet, gateway, and attached-container inspection.
  • Compose: up/down with .env + variable interpolation, depends_on ordering, and service_healthy waiting.

Kubernetes, One Click

Dory runs k3s inside the shared VM with selectable Kubernetes versions. It includes a cluster browser for pods, deployments, services, config maps, secrets, and ingresses, all with live health, pod exec, scale/restart/rollout controls, and kubectl apply from the app.

Linux Machines

You can spin up full Ubuntu, Debian, Fedora, Alpine, or Arch VMs with snapshots, terminal access, and use-case recipes (Node, Python, Go, Rust, etc.) that provision the machine ready-to-code. There's also a composer to hand-pick runtimes, tools, and packages.

Networking That Disappears

Published ports are available on localhost. Automatic *.dory.local domains are created for every container, and local HTTPS is issued by a local CA. All of this is consent-gated—nothing is installed silently.

x86/amd64 Emulation

x86/amd64 images run on Apple silicon via emulation.

Zero-Friction Start

First launch walks you through everything, including a one-click install of Apple's open-source container toolchain if it's missing. Migration imports your images and containers from Docker Desktop or OrbStack.

Installation

Homebrew

brew install --cask Augani/dory/dory

Manual

Download the notarized .dmg from the Releases page, drag Dory to Applications, and open it. First launch guides you through the rest.

Engine Backends

Dory selects a backend automatically, but you can override it with the DORY_RUNTIME environment variable. All backends share one ContainerRuntime protocol.

DORY_RUNTIME Backend Model
shared (default on supported hosts) Shared VM One persistent dockerd-in-VM for all containers (OrbStack-style). Standalone: no Docker required. Requires macOS 26+ on Apple silicon.
apple Apple container One lightweight micro-VM per container. Requires macOS 26+ on Apple silicon.
docker Docker Engine API Transparent proxy to an existing Docker-compatible socket (Docker Desktop, OrbStack, Colima, Rancher Desktop, Podman). Works on older macOS and Intel when the host engine does.
mock Mock In-memory sample data for UI development.

Requirements

  • Apple silicon, macOS 15 (Sequoia) or later: Full experience with Dory's own bundled engine, one shared VM, low memory, Kubernetes, Linux machines, and *.dory.local domains. Nothing else to install.
  • Intel Macs: Dory runs as a native front-end (app, CLI, and docker context) for a Docker-compatible engine you install separately (Colima, Docker Desktop, Rancher Desktop, Podman, or OrbStack). A native Intel engine (via Virtualization.framework) is on the roadmap.
  • Xcode 27 or later: Required to build from source.

Build & Run from Source

scripts/build.sh # compile-check
scripts/test.sh # full test suite
scripts/shot.sh # build, launch, and screenshot the window

Or open Dory.xcodeproj in Xcode and Run.

Optional System Integration

These need a one-time admin grant (the same one OrbStack asks for) and are run by you, never silently:

scripts/enable-networking.sh # *.dory.local domains + trust the local CA
scripts/enable-kubernetes.sh # bootstrap k3s in the shared VM

Architecture

Dory.app (SwiftUI)
│
â–¼
ContainerRuntime protocol ──► { Shared VM · Apple container · Docker API · Mock }
│
├─ doryd shim Docker REST API over ~/.dory/dory.sock
├─ Compose engine YAML → dependency DAG → reconcile
├─ engine services health state machine · event synthesis · anon-volumes
└─ Net LocalCA (TLS) · DomainRouter (*.dory.local) · port forwarding

Everything is dependency-light: the HTTP/unix-socket transport, YAML parser, and Docker-API client and server are hand-rolled, keeping the build small and deterministic. The Packages/ContainerizationEngine package links Apple's containerization framework to boot the Linux VM in-process.

What's Next

Portable dev machines you can back up and restore, remote access to your engine, and sandboxed environments for AI agents. Follow the releases and open an issue if you want to shape what comes first.

Contributing

Contributions are welcome. See CONTRIBUTING.md.

License

GPL-3.0 © 2026 Dory contributors.

Source

Augani/dory: A free, open-source native macOS app for Docker & Linux containers, an alternative to OrbStack and Docker Desktop. Universal for Intel and Apple silicon.