Dory:一款免费、开源的 macOS 原生 Docker 与 Linux 容器管理应用
Dory 是一款免费、开源的 macOS 原生 Docker 与 Linux 容器管理应用,采用共享虚拟机方案,是 OrbStack 和 Docker Desktop 的轻量级替代品。
什么是 Dory?
Dory 是一款免费、开源、原生的 macOS 应用,用于管理 Docker 和 Linux 容器。它被设计为 Docker Desktop 和 OrbStack 的轻量级替代品,完全使用 Swift 和 SwiftUI 构建。核心理念很简单:不为每个容器运行单独的虚拟机,而是启动一个持久的 Linux 微型虚拟机来运行所有容器。这显著降低了内存使用——经测量,其空闲内存消耗约为每个容器一个虚拟机方案的 4.7 倍(例如,两个容器时约 122 MB vs 约 574 MB)。
为什么选择 Dory?
一个虚拟机管理所有容器
Dory 利用苹果的开源容器栈启动一个 Linux 微型虚拟机。这种共享虚拟机模型是其高效的关键。内存节省会随着你运行的容器数量增加而扩大,非常适合需要在本地运行多个服务的开发者。
小巧且安静
Dory 应用本身只有约 6 MB。它占用约 0% 的空闲 CPU。没有后台索引器,没有遥测,也没有不必要的风扇噪音。这是一个设计约束,而非未来功能。
永久免费
Dory 完全免费。没有按席位许可,没有“商业使用”层级,没有账户,也不需要登录。它采用 GPL-3.0 许可,完整源代码可在 GitHub 上获取。
你的 Docker CLI 直接可用
Dory 在 ~/.dory/dory.sock 上提供 Docker API,并注册一个 dory Docker 上下文。这意味着你可以直接使用 docker run、docker compose 以及所有现有脚本和工具,无需修改。
原生,而非 Electron
Dory 使用 Swift 和 SwiftUI 构建。它提供菜单栏代理和完整仪表盘。支持登录时启动、亮色和暗色模式,并且没有 Chromium、Node 或遥测依赖。
你能获得什么
完整的 Docker 功能
- 容器:实时统计、日志、内嵌终端、环境检查。可通过 UI 或 CLI 创建、启动、停止、重启和删除。
- 镜像:拉取、从上下文文件夹构建、运行、清理、注册表登录、完整检查。
- 卷:包含文件浏览器。
- 网络:子网、网关和附加容器检查。
- Compose:支持
.env和变量插值的up/down、depends_on排序和service_healthy等待。
一键 Kubernetes
Dory 在共享虚拟机内运行 k3s,并支持选择 Kubernetes 版本。它包含一个集群浏览器,用于查看 Pod、部署、服务、配置映射、密钥和 Ingress,并提供实时健康检查、Pod 执行、扩缩容/重启/回滚控制,以及从应用内执行 kubectl apply。
Linux 机器
你可以启动完整的 Ubuntu、Debian、Fedora、Alpine 或 Arch 虚拟机,支持快照、终端访问,以及用例配方(Node、Python、Go、Rust 等),这些配方会预配置好机器以便直接编码。还有一个组合器,可以手动选择运行时、工具和包。
无缝网络
发布的端口可在 localhost 上访问。每个容器自动创建 *.dory.local 域名,并通过本地 CA 颁发本地 HTTPS 证书。所有这些都需要用户同意——不会静默安装任何内容。
x86/amd64 模拟
x86/amd64 镜像可通过模拟在 Apple Silicon 上运行。
零摩擦启动
首次启动会引导你完成所有步骤,包括一键安装苹果的开源容器工具链(如果缺失)。迁移功能可从 Docker Desktop 或 OrbStack 导入你的镜像和容器。
安装
Homebrew
brew install --cask Augani/dory/dory
手动安装
从 Releases 页面 下载经过公证的 .dmg 文件,将 Dory 拖到 Applications 文件夹,然后打开。首次启动会引导你完成后续步骤。
引擎后端
Dory 会自动选择后端,但你可以通过 DORY_RUNTIME 环境变量覆盖。所有后端共享一个 ContainerRuntime 协议。
DORY_RUNTIME |
后端 | 模型 |
|---|---|---|
shared(在受支持的主机上默认) |
共享虚拟机 | 一个持久的 dockerd-in-VM 用于所有容器(OrbStack 风格)。独立运行:无需 Docker。需要 macOS 26+ 和 Apple Silicon。 |
apple |
Apple 容器 | 每个容器一个轻量级微型虚拟机。需要 macOS 26+ 和 Apple Silicon。 |
docker |
Docker Engine API | 透明代理到现有的 Docker 兼容套接字(Docker Desktop、OrbStack、Colima、Rancher Desktop、Podman)。在旧版 macOS 和 Intel 上,当主机引擎支持时可用。 |
mock |
模拟 | 用于 UI 开发的内存示例数据。 |
系统要求
- Apple Silicon,macOS 15 (Sequoia) 或更高版本:完整体验 Dory 自带的引擎、一个共享虚拟机、低内存、Kubernetes、Linux 机器和
*.dory.local域名。无需安装其他组件。 - Intel Mac:Dory 作为原生前端(应用、CLI 和 Docker 上下文)运行,用于你单独安装的 Docker 兼容引擎(Colima、Docker Desktop、Rancher Desktop、Podman 或 OrbStack)。原生 Intel 引擎(通过 Virtualization.framework)已在路线图中。
- Xcode 27 或更高版本:从源代码构建所需。
从源代码构建与运行
scripts/build.sh # 编译检查
scripts/test.sh # 完整测试套件
scripts/shot.sh # 构建、启动并截取窗口截图
或者打开 Dory.xcodeproj 并在 Xcode 中运行。
可选系统集成
这些需要一次性管理员授权(与 OrbStack 要求的相同),并由你手动执行,绝不会静默运行:
scripts/enable-networking.sh # 启用 *.dory.local 域名 + 信任本地 CA
scripts/enable-kubernetes.sh # 在共享虚拟机中引导 k3s
架构
Dory.app (SwiftUI)
│
▼
ContainerRuntime 协议 ──► { 共享虚拟机 · Apple 容器 · Docker API · 模拟 }
│
├─ doryd shim Docker REST API over ~/.dory/dory.sock
├─ Compose 引擎 YAML → 依赖 DAG → 协调
├─ 引擎服务健康状态机 · 事件合成 · 匿名卷
└─ 网络 LocalCA (TLS) · DomainRouter (*.dory.local) · 端口转发
所有组件依赖轻量:HTTP/unix-socket 传输、YAML 解析器以及 Docker API 客户端和服务器均为手工编写,保持构建小巧且确定性。Packages/ContainerizationEngine 包链接了苹果的容器化框架,用于在进程中启动 Linux 虚拟机。
未来计划
可备份和恢复的便携开发机器、远程访问你的引擎,以及面向 AI 代理的沙盒环境。关注发布动态,如果你想决定哪些功能优先实现,请提交 issue。
贡献
欢迎贡献。请参阅 CONTRIBUTING.md。
许可
GPL-3.0 © 2026 Dory 贡献者。