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/downwith.env+ variable interpolation,depends_onordering, andservice_healthywaiting.
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.localdomains. 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.