This document describes Dory's current public product surface. Dory is under active development, so please report workflows that behave differently from a standard Docker engine.
| Environment | Status |
|---|---|
| Apple Silicon, macOS 15 or later | Supported; uses Dory's Hypervisor.framework engine |
| Apple Silicon, macOS 14 | Supported by the full bundle through the Virtualization.framework fallback |
| Intel Mac | Unavailable; no public build before dedicated physical qualification |
| Windows or Linux host | Unavailable; Dory is a macOS app |
Dory ships one Apple Silicon Docker Core app. Kubernetes, Linux Machines, the shared Linux Desktop runtime, and the managed Debian, Ubuntu, and Kali images are signed optional components. Their payloads live on the selected Dory data drive and can be removed independently without deleting workload data.
| Capability | Status |
|---|---|
| Docker CLI and API | Supported through the dory context and ~/.dory/dory.sock |
| Containers | Create, run, start, stop, restart, remove, inspect, logs, stats, exec, attach, and port publishing |
| Images | Pull, build, inspect, history, tag, save/load, remove, and prune |
| Buildx / BuildKit | Bundled; contexts, secrets, SSH mounts, cache import/export, and cancellation supported |
| Volumes | Create, inspect, browse, copy, remove, and prune |
| Networks | Bridge networks, custom IPAM, aliases, connect/disconnect, inspect, remove, and prune |
| Compose | Bundled Compose v2 with profiles, overrides, .env, builds, health dependencies, and external resources |
| Registry authentication | Docker-compatible login and credential flow |
| Bind mounts | Home-directory and /Volumes paths are shared at their native macOS paths |
| amd64 images on Apple Silicon | Supported for common development workloads through bundled FEX |
Some specialized Docker extensions and host-specific plugins may assume another product's internal paths. Open an issue with the exact tool and version when that happens.
| Capability | Status |
|---|---|
| Managed data drive | Supported; defaults to ~/Library/Application Support/Dory/Dory.dorydrive |
| External data drive | Supported on mounted local APFS storage under /Volumes |
| Data-drive growth | Supported; shrinking is intentionally rejected |
| Backup / verify / restore | Supported while the selected drive is idle |
| Uninstall preservation | Supported; ordinary uninstall keeps workload data |
| Migration | Transactional full or exact-selection import with dependency closure, selected-scope preflight, rollback, source-drift rejection, and a selected/verified/omitted completeness report |
| In-place upgrade | Signed preflight, exact last-known-good app/config/components, next-launch workload smoke, safe automatic rollback, and recovery export when durable schema rollback is unsafe |
Keep independent backups of important data. Dory refuses unsafe replacement and shrinking operations, but it is not a substitute for a normal backup strategy.
| Capability | Status |
|---|---|
| k3s provisioning | Supported in the shared engine |
kubectl |
Installed by the optional Kubernetes component |
| Resource browser | Pods, deployments, services, config maps, secrets, and ingresses |
| Workload actions | Logs, exec, scale, restart, rollout, and apply |
| Multiple Kubernetes versions | Selectable from supported Dory presets |
Large local clusters require enough memory and disk space. Stop unused workloads before changing engine resources.
| Capability | Status |
|---|---|
| Guest OS | Managed Debian 13, Ubuntu 24.04 LTS, or Kali rolling Xfce desktop; lightweight Alpine headless Linux on native arm64 |
| Access | Configurable desktop user, graphical session, embedded or selected external terminal, dory machine shell, and command execution |
| Resources | CPU and memory configuration with guest-reported statistics |
| Snapshots and export/import | Supported |
| Scheduled local recovery bundles | Supported; owner-only durable schedules, archive re-import verification on every run, periodic disposable boot verification, and scheduler-owned retention |
| Managed remote/offsite machine backup | Unavailable; Dory does not claim an S3 or hosted backup service |
| Development recipes | Curated Node, Python, Go, Rust, Java, Ruby, and DevOps toolsets for Debian and Alpine |
| Graphical Linux sessions | Supported with managed Debian, Ubuntu, and Kali Xfce profiles on Apple Silicon |
| Desktop display | Retina-sharp 2x framebuffer, dynamic window resizing, and matching Xfce scaling |
Desktop machines run normal graphical and command-line applications with glibc and systemd. Their
disk is thin-provisioned to 64 GiB in the selected Dory data drive. Headless machines use Alpine,
musl, root, and /bin/sh. Arbitrary desktop images and guest kernel modules are not part of the
current contract.
| Capability | Status |
|---|---|
| Published ports | Localhost by default |
*.dory.local domains |
Optional system integration |
| Trusted local HTTPS | Optional local certificate authority |
| Container-to-host services | host.dory.internal |
| Custom DNS and proxies | Configurable |
| Corporate proxy, scoped CA, split DNS, and VPN profile | Supported with preview/apply/disable ownership checks and automatic reconciliation |
| Docker bridge subnet | Configurable private /16 through /24; applying restarts the engine while preserving data |
| VPN environments | Supported in common configurations; report provider-specific issues |
| IPv6 | Local dual-stack behavior is supported; external availability follows the host network |
| LAN-visible publishing | Explicit opt-in; do not expose untrusted services |
Dory is designed for standard Docker API consumers, including Testcontainers, Dev Containers, local cloud emulators, CI workflow runners, and Kubernetes development tools. Compatibility can still vary by tool version and by assumptions about Docker Desktop-specific file paths.
SSH-agent forwarding is available at /run/host-services/ssh-auth.sock. Mount it only into trusted
containers because any process with agent access may request signatures.
| Capability | Status |
|---|---|
| Diagnostics | Passive and active checks for sockets, API, Docker, networking, mounts, registries, disk, memory, and helpers |
| Repair | Targeted dry runs with explicit apply and engine-restart controls |
| Cleanup | Dry run by default; named volumes require a second explicit flag |
| Support bundles | Redacted local evidence collection |
| Agent guide | Versioned JSON command and safety contract |
| Dory control MCP | Local stdio server with read-only mode, machine execution, waits, and events |
| Third-party MCP catalog/gateway | Unavailable; Dory's control MCP is not a tool marketplace or proxy |
| Agent sandbox | Supported dedicated non-root VM with read-only mount defaults, enforced egress, credential/resource grants, rollback, manifests, kill, named reuse, and daemon TTL |
Run dory agent guide --json for the exact contract provided by the installed release. Sandbox
network defaults to none; outbound permits only Dory DNS and explicit resolved destination/port
grants; full is an explicit unrestricted choice. See the
agent guide for trust boundaries.
- In-guest Venus/Vulkan acceleration is preview on the Apple-silicon raw-HV tier.
- Remote SSH workspace foundations and custom machine kernel/rootfs inputs remain preview with the
exact limits reported by
dory agent guide --json.
- USB attach, detach, and remembered replay are unavailable. Host discovery is supported, but the engine fails closed until a complete guest USB/IP RPC and physical qualification exist.
- Audio passthrough is unavailable.
- Intel-host public builds are unavailable before dedicated physical qualification.
- Desktop images beyond the managed Debian, Ubuntu, and Kali Xfce profiles are unavailable.
- Managed image update discovery/replacement, mDNS/multicast relay, and general L2 bridging are unavailable in 0.4.
Start with:
dory doctor --active
dory disk
dory routes
dory support bundleWhen filing an issue, include the Dory version, macOS version, Mac model, affected command or tool, and a redacted support bundle when available.