Davit:Apple Containers 的原生 UI 工具
Davit 直接通过 XPC 与 Apple 开源的 容器 守护进程通信,采用和 CLI 完全一致的通信路径。无需 Electron、无需网页视图、也没有独立后台进程。
支持启动、停止、重启、删除容器,每一行都实时显示 CPU、内存占用及 IP 地址。提供流式日志(支持追更与启动模式)、实时统计图表,还可查看原始配置。
直接在 Terminal 或 iTerm 中打开任意运行中容器的交互式 Shell,基于原生 API,无需借助 CLI。
容器具有不可变性,因此 Davit 会基于旧配置自动生成新容器模板,并移除镜像的入口命令与环境变量,让你能在几秒内修改端口、环境变量、挂载目录或资源配额。
直接在应用内浏览运行中容器的文件系统:可导航文件夹、将文件下载到 Mac、上传或删除文件。全程基于原生 API,无需输入 docker cp 命令。
打开 docker-compose.yml 文件,Davit 会清晰展示即将创建的内容:按依赖顺序排列的服务、卷、网络、每个服务对应的等效 CLI 命令,还会对不支持的配置给出明确警告。一键即可启动整个服务栈。
选择上下文文件夹、设置标签、点击构建。Davit 直接调用 Apple 的 BuildKit 构建器(必要时会自动启动),构建完成的镜像将存入你的镜像库,随时可运行。
支持实时进度显示的镜像拉取、基于任意镜像/标签运行容器、镜像清理;可创建指定大小的卷与自定义子网;删除前可查看资源是否正在被使用。
登录 Docker Hub、ghcr.io、quay.io 或任意镜像仓库,即可拉取私有镜像。凭证会即时验证并存储在你的登录钥匙串中,与 container CLI 共享,两者均可读取。
新容器默认 CPU/内存配置、镜像仓库、DNS、构建器资源等,均可在应用内编辑,由平台自带的配置加载器验证,最终保存为简洁的 TOML 覆盖配置。
未安装容器平台?Davit 会下载 Apple 签名的安装包,验证后自动在你的用户库中完成全部配置,无需管理员权限。它还可将 container CLI 添加到你的 Shell 环境中。
完全基于 SwiftUI 构建。支持菜单栏快捷操作,仅在需要时显示 Dock 图标,实时图表无需启动浏览器即可渲染。
从全新安装到启动可在浏览器中访问的容器,全程顺畅便捷。
从 发布页 下载,或执行 brew install wouterdebie/tap/davit 安装。首次启动时,若未安装 Apple 容器平台,Davit 会自动帮你完成配置,无需管理员密码。
点击 镜像 → 拉取镜像,输入一个可在浏览器中展示内容的小型镜像:
点击镜像的 运行 按钮(或通过 容器 → 运行容器)。设置端口映射(主机 8088 → 容器 80)后启动。
在容器的 端口 行,点击 在浏览器中打开(或直接访问 localhost:8088)。你将看到由容器内部提供的页面,显示容器自身的主机名与地址。
打开容器详情页,可查看实时 CPU、内存与磁盘占用,流式查看 日志,浏览并下载 文件,进入 终端,或通过 编辑并重建 修改端口、环境变量或资源配置。
答案要从架构说起:没有始终运行的多 GB 级 Linux 虚拟机。Docker Desktop 无论是否运行容器,都会维持一个大型虚拟机;而 Apple 的平台会为每个容器单独启动一个轻量级虚拟机,其大小与容器需求匹配,容器停止后即自动销毁。当没有容器运行时,平台后台服务仅占用约 25 MB 内存。Davit 本身是原生 SwiftUI 应用(非 Electron 架构),内存占用主要来自 macOS 共享框架。因此,你运行的容器越少,系统资源消耗就越低。
说实话,如果 OrbStack 对你来说用着顺手,你不会为了速度切换到 Davit——OrbStack 确实很棒,其共享虚拟机的设计速度非常快。但两者的引擎存在本质区别:OrbStack 是商业应用,拥有自研的兼容 Docker 的虚拟化层;而 Davit 是免费开源的 UI,基于 Apple 官方容器平台,能在不到一秒的时间内为每个容器启动独立轻量虚拟机,容器停止后立即销毁。实际使用中你会发现:无容器运行时后台无常驻进程、每个容器在桥接网络上拥有独立 IP、容器间隔离性更强,且无需许可证或账号。OrbStack 的优势则在于:完全兼容 docker CLI/API,支持的工具范围更广。两者均支持标准 OCI 镜像。
可以。该平台内置本地 DNS 域名:只需执行一次 sudo container system dns create test(或使用你自己的域名),在 设置 → 平台 → DNS 中设为默认域名,名为 web 的容器即可通过 web.test 从你的 Mac 访问。每个容器还会分配独立 IP(在其网络信息中显示),因此直接访问始终可行。此外,在容器内运行 Avahi 可广播 .local 多播 DNS 别名,因为容器位于拥有独立地址的桥接网络中。
支持,但仅为兼容子集。通过 容器 → ⋯ → 导入 Compose 文件 解析文件,可预览执行计划:按 depends_on 顺序排列的服务、命名卷、网络,以及每个服务对应的等效 container run 命令。一键即可创建并启动所有资源。支持的配置项包括:镜像、端口、环境变量、卷(命名卷与绑定卷)、网络、资源限制、命令、用户、工作目录。对于导入器无法兼容的配置(如 restart:、healthcheck:、build:),会提前列出警告,而非静默忽略。由于 Apple 平台本身不支持原生 Compose,因此由 Davit 自行编排服务栈。
可以:点击 镜像 → 构建镜像。Davit 直接调用 Apple 基于 BuildKit 的构建器(若未运行则自动启动):选择上下文文件夹与 Dockerfile,设置标签与构建参数,构建完成的镜像将存入你的镜像库。目前平台有一个限制需要注意:超过 16 KiB 的 Dockerfile 会被拒绝(这是上游 apple/container 漏洞),且构建上下文不能位于 /tmp 目录下。
可以。在 设置 → 镜像仓库 中登录,支持 Docker Hub、ghcr.io、quay.io 或任意 OCI 兼容仓库。凭证会先与仓库验证,再保存到你的登录钥匙串中,并与 container CLI 共享,因此在 Davit 中登录后,CLI 拉取镜像也可直接使用(反之亦然)。针对 Docker Hub,建议使用访问令牌而非密码登录。
安全可靠。每个版本都经过 Apple 开发者 ID 签名与公证,打开时不会触发 Gatekeeper 警告。Davit 采用 MIT 许可证开源,你可自行查看源代码或编译。它仅与本地容器守护进程及 GitHub(用于检查更新)通信。
需要安装 container CLI 吗?不需要。Davit 直接通过 XPC 与平台通信。若未安装平台,Davit 可在首次启动时自动下载并安装 Apple 签名的安装包,无需管理员密码。若你需要,也可在设置中选择将 container CLI 添加到 Shell 环境。