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 |
| Search and mmap-heavy workloads | Supported with guest vm.max_map_count=262144 and a default container nofile limit of 65536 |
| 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 application/container workloads through bundled FEX inside Dory's ARM64 engine; this is not an x86_64 guest OS or ISO path |
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 Ubuntu 24.04 LTS GNOME, Debian 13 Xfce, 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 Ubuntu GNOME and Debian/Kali Xfce profiles on Apple Silicon |
| Desktop display | Retina-sharp 2x framebuffer, dynamic window resizing, and matching GNOME or Xfce scaling |
| Desktop GPU acceleration | Unqualified for public release: the repaired dual VirGL2+Venus tuple passed a 15-minute physical Developer-ID calibration on Apple M2 Pro with GNOME, Firefox, Files, Calculator, Settings, Terminal, sustained VirGL OpenGL, Venus Vulkan WSI, and native-Venus Zed; no rejected resource flush or device loss occurred. Public support remains closed until the same tuple is release-signed/notarized and passes the complete release matrix; software display remains the recovery path |
| Existing desktop updates | Signed in-place package, browser, guest-integration, and kernel updates with a retained last-good snapshot and automatic failure/interruption rollback |
| Custom arm64 installer ISO | Preview: architecture preflight, exact-media SHA-256/runtime evidence, native EFI boot, private managed ISO copy and recovery console, thin-provisioned disk, persistent machine identity/NVRAM, and attach/eject lifecycle |
Managed 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. Custom arm64 ISO installation is preview until real-distribution
installation, reboot, media-ejection, device, and guest-tools qualification passes on physical Macs.
Architecture compatibility does not imply runtime qualification: Dory records the exact ISO hash,
host model, and macOS build, blocks known-unstable tuples, and labels unseen combinations as
unqualified.
Rosetta translates x86_64 Linux applications inside an eligible ARM64 Linux VM; Dory's current container path uses FEX for the same application-level boundary. Neither boots an Intel distro, kernel, or installer. Dory exposes no partial x86 VM mode. A future whole-system x86 product would require a complete packaged QEMU TCG backend with independently qualified firmware, devices, lifecycle, security, recovery, and performance, as defined by the whole-machine emulation 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.
- Custom arm64 Linux installation from ISO through EFI is preview pending exact-candidate physical-Mac qualification. Ubuntu 24.04.3 and 24.04.4 ARM64 are known unstable on Mac14,10/macOS build 26A5406e with Dory's retired VirtIO-block EFI profile. Under the current native-NVMe/fsync profile, Ubuntu 24.04.3 completed installation, package updates, ISO ejection, and persistent GNOME/Chrome boot, but a later whole-guest stall during Chromium snap installation keeps that exact tuple unqualified.
- 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 controls exist in the public app and
dorydctl, but enable only for a running raw-HV machine whose exact signed resolved plan authorizes removable USB. Current production catalogs carry no such physical-device qualification, so attachment still fails closed in release builds. Remembered replay remains unavailable. - Audio passthrough is unavailable.
- Intel-host public builds are unavailable before dedicated physical qualification.
- Intel/x86_64 Linux installer ISO boot is unavailable; application translation inside an ARM64 guest does not change that boundary.
- 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.