Dory:兼容macOS与Linux,OrbStack 和 Docker Desktop 的开源替代
Dory(Augani/dory,GitHub 1,100+ Stars)是一个 原生 macOS 开源应用,用于在 Mac 上运行 Docker 容器、Kubernetes 集群和完整的 Linux 虚拟机(含图形桌面)。它直接定位为 OrbStack 和 Docker Desktop 的替代品,采用 GPL-3.0 许可证,完全免费,无需账号、无遥测、无云控制面。
项目地址:https://github.com/Augani/dory
官网:https://augani.github.io/dory
当前版本:v0.3.2(2026年7月)
技术栈:SwiftUI + Rust
核心特性
1. Docker 运行时
- Docker 29 API 和 CLI、Buildx、BuildKit、Compose v2
- 完整支持绑定挂载、命名卷、自定义网络
- 通过 FEX 在 Apple Silicon 上运行 x86/amd64 镜像
- Docker 套接字兼容,支持 Testcontainers、Dev Containers
2. Kubernetes(可选组件)
- 一键启动 k3s 集群
- 可选 Kubernetes v1.34 / v1.35 / v1.36
- 原生资源浏览器(Pod、Deployment、Service、ConfigMap、Secret、Ingress)
3. Linux 机器(可选组件)
- 完整桌面 Linux:Debian 13、Ubuntu 24.04 LTS、Kali rolling,带 Xfce 图形桌面(Retina)
- 轻量无头 VM:Alpine 系统,适合服务端和 CI
- 支持快照、克隆、导出、导入
- 可配置 CPU(1-8核)、内存(1-16 GB)
- Mac 主目录共享 + 可选目录挂载
4. 迁移工具
从 Docker Desktop、OrbStack、Colima、Rancher Desktop、Podman 等自动导入:
- 镜像、卷、网络、容器配置
- 写前校验、碰撞检测
- 只读源、失败回滚
5. 网络功能
- 自动域名
*.dory.local - 自定义主机名路由
- 本地 CA + 可信 HTTPS
- 低端口转发(80/443)
- LAN 和 Tailscale 可选开放
- 企业网络代理配置向导
6. AI Agent / MCP 原生支持
Dory 内置了完整的 MCP 服务器,这是它与所有竞品最显著的差异化特性:
dory mcp serve --read-only
dory agent guide --json
dory sandbox run --json --network none -- /bin/sh -lc 'uname -a'支持的操作:
dory.agent_guide— 机器可读的功能指南dory.doctor— 运行时诊断dory.machine_exec— 在 Linux 机器中执行命令dory.sandbox_run— 创建隔离沙箱 VMdory.wait/dory.events— 等待和事件流
沙箱沙箱功能:隔离 VM、默认无主机文件访问、非 root 执行、只读挂载、出站网络策略、临时密钥授权、TTL 自动清理。
7. 引擎后端选择
| 后端 | 用途 |
|---|---|
| Dory 守护进程 | 完整产品:共享引擎、机器、K8s、存储、联网、Auto-Idle |
| 已有引擎 | 复用 Docker Desktop / OrbStack / Colima 等的 Docker 套接字,只使用 Dory 的 UI |
| 自定义套接字 | 连接到任意 Docker 兼容 Unix 套接字 |
8. 存储管理
- 默认
~/Library/Application Support/Dory/Dory.dorydrive - 稀疏增长(128 GiB - 2 TiB)
- 外置 APFS 驱动器支持
- 带校验的备份和恢复
9. 其他
- Auto-Idle:空闲 5-60 分钟后自动休眠引擎
- 诊断修复:
dory doctor+dory repair all自动修复问题 - 无遥测、无账号:完全离线可用
- 定时备份:Linux 机器可按小时/天/周自动备份并校验
快速上手
# 方式一:Homebrew 安装(推荐)
brew install --cask Augani/dory/dory
# 方式二:下载 DMG
# 从 GitHub Releases 下载 Dory-x.y.z-arm64.dmg
# 启动后,使用标准 Docker 命令
docker context use dory
docker run --rm hello-world
# 完整运行时检查
dory doctor --active
dory routes --json
dory disk --jsonDocker Core 基础安装包约 224 MB DMG(安装后约 409 MB),Kubernetes、Linux 机器等为可选签名组件,按需下载。
竞品对比
全面对比矩阵
| 对比维度 | Dory | OrbStack | Docker Desktop | Colima | Rancher Desktop | Podman Desktop | Finch | Lima |
|---|---|---|---|---|---|---|---|---|
| 开源 | ✅ GPL-3.0 | ❌ 闭源 | ❌ 闭源 | ✅ MIT | ✅ Apache 2.0 | ✅ Apache 2.0 | ✅ Apache 2.0 | ✅ Apache 2.0 |
| 价格 | 免费 | 个人免费/商业 \(8/月 | 个人免费/商业\)9-24/月 | 免费 | 免费 | 免费 | 免费 | 免费 | |
| macOS | ✅ AS(Intel 待定) | ✅ Intel+AS | ✅ Intel+AS | ✅ Intel+AS | ✅ Intel+AS | ✅ Intel+AS | ✅ Intel+AS | ✅ Intel+AS |
| Linux | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Windows | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
| 图形界面 | ✅ SwiftUI 原生 | ✅ Swift 原生 | ✅ Electron | ❌ CLI 仅 | ✅ 原生 | ✅ Electron | ❌ CLI 仅 | ❌ CLI 仅 |
| 桌面应用 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ |
| Docker API | ✅ 原生 | ✅ 原生 | ✅ 原生 | ✅ 原生 | ✅ dockerd 模式 | ⚠️ 套接字模拟 | ⚠️ nerdctl | ⚠️ nerdctl |
| Docker Compose | ✅ v2 | ✅ v2 | ✅ v2 | ✅ v2 | ✅ dockerd/⚠️ nerdctl | ⚠️ podman-compose | ⚠️ nerdctl compose | ⚠️ nerdctl |
| 容器引擎 | Docker | Docker | Docker | Docker/containerd | dockerd/containerd | Podman | containerd | containerd |
| Kubernetes | ✅ k3s(可选组件) | ✅ k3s | ✅ 内置 | ✅ k3s(--kubernetes) | ✅ k3s 内置 | ⚠️ Kind/Minikube 集成 | ❌ | ❌ |
| Linux 机器 | ✅ 完整桌面+无头 | ✅ 16 种发行版 | ❌ | ❌ | ❌ | ❌ | ❌ | ✅(底层) |
| 图形化 Linux 桌面 | ✅ Xfce(Debian/Ubuntu/Kali) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| x86 模拟 | ✅ FEX | ✅ Rosetta | ✅ Rosetta | ✅ Rosetta (--vz-rosetta) | ✅ Rosetta | ✅ QEMU | ✅ Rosetta | ✅ QEMU/Rosetta |
| 自动域名 | ✅ *.dory.local | ✅ *.orb.local | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 迁移工具 | ✅ 全自动多来源 | ✅ 从 Docker Desktop | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| MCP/AI Agent | ✅ 内置 MCP + 沙箱 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| USB 透传 | ⚠️ 主机发现就绪/透传待定 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Auto-Idle 休眠 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 多后端 UI | ✅ 可接已有 Docker 引擎 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 多配置文件 | ❌ | ❌ | ❌ | ✅ profiles | ❌ | ❌ | ❌ | ❌ |
| GPU AI 加速 | ⚠️ 预览 Venus | ❌ | ✅ | ✅ krunkit | ❌ | ✅ AI Lab | ❌ | ❌ |
| 资源占用(空闲) | ~200-400 MB | ~50-200 MB | ~2-4 GB | ~400-600 MB | ~1-1.5 GB | ~200-600 MB | ~400 MB | ~300 MB |
| 启动时间 | ~5-10 秒 | ~2-3 秒 | ~20-30 秒 | ~3-5 秒 | ~15-30 秒 | ~5-10 秒 | ~5-10 秒 | ~5-10 秒 |
| 后台 CPU 空闲 | 极低 | ~0.1% | ~2-5% | 极低 | 低 | 低 | 低 | 低 |
| 安装包大小 | ~224 MB DMG | ~50 MB | ~600 MB | ~20 MB(CLI) | ~300 MB | ~200 MB | ~100 MB | ~30 MB(CLI) |
| 成熟度 | v0.3.2 较新 | v1.x 成熟 | v4.x 成熟 | v0.8 成熟 | v1.18 成熟 | v1.20 成熟 | v1.4 成熟 | v0.x 成熟 |
竞品详细分析
1. OrbStack(最直接的竞品)
定位:macOS 上最快、最轻量的 Docker 替代品。
OrbStack 是 Dory 最直接的竞争对手。两者都是 macOS 原生应用、都提供自动域名、都内置 k3s。关键差异:
- 性能:OrbStack 启动速度(2秒 vs 5-10秒)和空闲资源占用(~0.1% CPU)仍领先 Dory
- 成熟度:OrbStack v1.x 更加成熟稳定,Dory v0.3.2 还在快速迭代
- Intel 支持:OrbStack 支持 Intel Mac,Dory 暂时仅 Apple Silicon
- 开源:Dory(GPL-3.0)vs OrbStack(闭源商业)— 对开源社区来说这是根本性差异
- Linux 桌面:Dory 支持完整图形化 Linux 桌面,OrbStack 只有终端
- MCP/AI 沙箱:Dory 独有的 AI Agent 原生支持
- 多后端:Dory 可复用 OrbStack 的引擎只用自己的 UI
选 OrbStack 如果:你追求最极致的性能和成熟度,不介意闭源,只需要终端级 Linux 机器。
选 Dory 如果:你在乎开源、需要图形化 Linux 桌面、需要 AI Agent 集成。
2. Docker Desktop(行业标准)
定位:官方 Docker 桌面客户端,生态最完善。
- 兼容性:100% 的 Docker 标准,Docker Scout、Extensions 市场等独有功能
- 定价:大型组织需要付费($9-24/用户/月),Dory 完全免费
- 资源占用:空闲 2-4 GB RAM,MacBook 上非常吃资源
- macOS 体验:Electron 应用,不如 Dory/OrbStack 的 Swift 原生应用流畅
- 无 Linux 机器:不能运行完整 Linux 发行版
选 Docker Desktop 如果:需要 Docker Extensions、Scout 等官方生态、公司已付费。
选 Dory 如果:不想付费、需要更轻量的运行时、需要 Linux 桌面。
3. Colima(CLI 轻量之选)
定位:命令行界面下最轻量的 Docker 运行时。
- 简单纯粹:
colima start启动,colima stop关闭,没有 GUI - 多运行时:支持 Docker、Containerd、Kubernetes、Incus
- 多配置文件:可以为不同项目配置不同 VM 资源
- 资源占用少:空闲约 400-600 MB
- 无 GUI:完全终端操作,不适合习惯可视化界面的用户
- 无 Linux 机器:不能运行完整 Linux 发行版
- 文件系统性能:使用 sshfs 时较慢(可换 VirtioFS)
选 Colima 如果:你习惯纯 CLI 工作流、需要极轻量的 Docker 运行时、想在不同项目间切换资源配置。
选 Dory 如果:你需要 GUI、Linux 桌面、自动域名、Agent 集成等高级功能。
4. Rancher Desktop(Kubernetes 优先)
定位:为 Kubernetes 开发者设计的一站式桌面工具,来自 SUSE。
- Kubernetes 最强:内置 k3s,可选版本,kubectl/Helm 开箱即用
- 引擎可选:可在 dockerd 和 containerd 间切换
- 跨平台:macOS、Windows、Linux 全支持
- 较重:空闲约 1-1.5 GB RAM,加上 k3s 约 2 GB
- 无独立 Linux 机器:没有单独的 Linux 发行版管理功能
- Lima 底层:性能不如 OrbStack 的自研引擎
选 Rancher Desktop 如果:你的日常工作是 Kubernetes 开发、需要在 Windows/Mac/Linux 间统一体验。
选 Dory 如果:你同时需要 Docker 和 Linux 桌面、希望更轻量的 K8s 体验。
5. Podman Desktop(守护进程无关)
定位:Red Hat 出品的守护进程无关、默认 rootless 的容器运行时。
- 安全架构:无守护进程、默认 rootless,容器逃逸风险低
- 跨平台:macOS、Windows、Linux
- Podman CLI:
docker命令的替换品,但需要习惯 - Docker Compose 兼容性:
podman-compose在复杂场景下可能有差异 - macOS 性能:通过 VM 运行,不如 Dory/OrbStack 优化
- 无 Linux 机器:不能运行完整 Linux 发行版
选 Podman 如果:你的组织有严格的安全合规要求(金融、医疗)、主要用 Linux 开发。
选 Dory 如果:你需要完全的 Docker 兼容性、Linux 桌面、macOS 原生体验。
6. Finch(AWS 生态)
定位:AWS 推出的开源容器开发工具,使用 containerd + nerdctl。
- AWS 友好:内置 ECR 认证集成
- 开源:Apache 2.0
- Containerd 原生:使用 containerd 而不是 Docker 引擎
- CLI 仅:无图形界面
- Docker API 有限:需要通过 Finch Daemon 桥接,非原生 Docker 体验
- 社区较小:相比其他选项用户较少
选 Finch 如果:你的工作流深度集成 AWS(ECR、ECS)、偏好 containerd 生态。
选 Dory 如果:你需要完整的 Docker 兼容性、GUI、Linux 桌面。
7. Lima(底层引擎)
定位:Linux 虚拟机管理器,是 Colima、Finch、Rancher Desktop 的底层组件。
- 非面向终端用户:是基础设施层,需要自己配置
- 最大灵活性:可自定义虚拟机配置
- 使用门槛高:需要手动配置 YAML
- 无 GUI:纯 CLI
选 Lima 如果:你需要底层控制、自己构建工具链。
选 Dory 如果:你想要开箱即用的完整产品。
适用场景
选 Dory 的场景
- 你需要 Linux 图形桌面:在 Mac 上运行带 Xfce 的 Ubuntu/Debian/Kali
- 你在乎开源和免费:不想被 Docker Desktop 或 OrbStack 的商业许可限制
- 你需要 AI Agent 集成:使用 MCP 协议让 AI 工具直接操作容器和沙箱
- 你需要从多平台迁移:从 Docker Desktop/OrbStack/Colima 等一键迁移
- 你希望一个应用管理所有运行时:Docker + K8s + Linux VM + 桌面全部在一个原生应用中
- 你不想装 agent 在机器上:Dory 是自包含的,不需要额外守护进程
不适合 Dory 的场景
- Intel Mac 用户:目前仅 Apple Silicon
- 需要 Windows/Linux 支持:仅 macOS
- 追求最极致性能:OrbStack 在启动速度和资源占用上仍领先
- 需要 Docker Extensions 生态:目前不支持
- 团队需要管理控制台:Dory 是个本地工具,没有团队管理功能
项目状态
- 当前版本:v0.3.2(2026年7月17日)
- Apple Silicon 原生:通过 Virtualization.framework(macOS 15+)和 Hypervisor.framework(macOS 14 备用)运行
- Intel Mac:计划后续支持
- 即将推出:多节点集群、USB IP 透传、音频透传
小结
Dory 是 macOS 容器和 Linux 开发工具领域一个令人兴奋的新选择。它不像 Colima 那样过于简单(无 GUI),不像 Docker Desktop 那样臃肿(2-4 GB 空闲 RAM),也不像 OrbStack 那样闭源。
它在以下方面具有独特性:
- 图形化 Linux 桌面 — 唯一支持在 Mac 上运行完整 Linux 桌面环境的容器工具
- AI Agent 原生集成 — 内置 MCP 服务器和隔离沙箱,为 AI 编程时代而生
- 开源 + 免费 — GPL-3.0,无商业限制
- 多后端架构 — 可复用已有 Docker 引擎只使用其 UI
如果它成熟度进一步提升(到达 v1.0),补齐 Intel 支持和少数缺失功能,它完全有潜力成为 macOS 上"开源版的 OrbStack"。
项目地址:https://github.com/Augani/dory
官网:https://augani.github.io/dory
许可证:GPL-3.0
安装:brew install --cask Augani/dory/dory