← 返回日报
精读 预计 4 分钟

Show HN: Davit, a Apple Containers UI

摘要

Davit 是一款完全原生 macOS 应用,使用 SwiftUI 构建,针对 Apple 容器平台(运行 Linux 容器在 Apple silicon 上,无需 Docker Desktop)。它通过 XPC 直接与 Apple 开放源码容器守护进程通信,无 Electron、无 web 视图。功能包括容器启动停止重启删除(实时 CPU 内存 IP、流式日志、boot 模式、原始配置检查)、单键终端(直接进入 Terminal 或 iTerm)、编辑重建容器(从旧配置预填充减去 entrypoint 和 env)、镜像卷网络管理(拉取带进度、创建卷和子网)、平台设置(默认 CPU 内存、注册表、DNS 等,编辑后保存为 TOML 覆盖)。安装时如果未安装平台,会下载并设置 Apple 的签名安装包,无需管理员权限。提供详细使用步骤:安装后拉取 nginxdemos / hello 镜像、运行并映射端口、从端口行打开浏览器访问。FAQ 覆盖内存占用(无常驻大 VM,仅轻量 VM)、与 OrbStack 对比、名称访问、签名安全、CLI 依赖等。

荐读理由

通过Davit桌面直接通过XPC操控Apple容器平台,实现sub-second启动、per-container IP和原生Apple silicon优化,无需Docker Desktop;还能看到其与OrbStack的真实对比,帮助我判断AI工程项目在macOS上的本地化部署该选哪套。

原文

Davit app icon

Davit

A fully native macOS app for Apple's container platform — run Linux containers on Apple silicon, no Docker Desktop required.

Free & open source · MIT licensed · Signed & notarized

Download for macOS View on GitHub

Requires an Apple silicon Mac running macOS 15 or later. Or via Homebrew: brew install wouterdebie/tap/davit

Davit dashboard showing service status, resource counts, disk usage and a live CPU chart

The dashboard: services, disk usage and live CPU across all running containers.

Everything you'd expect. Nothing you don't.

Davit talks directly to Apple's open-source container daemon over XPC — the same wire path the CLI uses. No Electron, no web views, no background agents of its own.

📦

Containers

Start, stop, restart and delete with live CPU, memory and IP on every row. Streaming logs with follow & boot mode, live stat charts, and raw config inspection.

🖥️

One-click terminal

Open an interactive shell in any running container, straight into Terminal or iTerm — over the native API, no CLI needed.

🪄

Edit & Recreate

Containers are immutable — so Davit prefills a new one from the old config with the image's entrypoint and env subtracted, letting you change ports, env vars, mounts or resources in seconds.

💿

Images, volumes, networks

Pull with live progress, run from any image, tag, prune. Create sized volumes and custom subnets. See what's in use before you delete it.

⚙️

Platform settings, editable

Default CPU/memory for new containers, registry, DNS, builder resources — edited in the app, validated by the platform's own config loader, saved as clean TOML overrides.

⬇️

Installs the platform for you

No container platform installed? Davit downloads Apple's signed installer, verifies it, and sets everything up in your user Library — no administrator rights needed. It can add the container CLI to your shell, too.

Native, down to the pixels.

Built entirely in SwiftUI. Menu bar quick actions, a Dock icon only when you want one, and live charts that don't spin up a browser to render.

Container list with live per-container CPU, memory and IPLive CPU and memory charts for a container

Per-container CPU & memory, sampled every 2 seconds.

Container detail overview with network, ports, mounts and environment

Network, ports, mounts and environment at a glance.

Image list with platform variants, sizes and in-use badges

Images with sizes, platforms and in-use badges.

Get started in two minutes

From a fresh install to a running container you can open in your browser.

Install & open Davit

  1. Grab it from Releases or brew install wouterdebie/tap/davit. On first launch, if Apple's container platform isn't installed, Davit sets it up for you — no admin password needed.

Pull a demo image

  1. Click Images → Pull Image and enter a small image that shows something in the browser:

  2. nginxdemos/hello

Run it with a published port

  1. Hit Run on the image (or Containers → Run Container). Set a port mapping — host 8088 → container 80 — and run.

Open it

  1. From the container's Ports row, click Open in Browser (or visit localhost:8088). You'll see a page served from inside the container, showing its own hostname and address.

Explore

  1. Open the container to watch live CPU, memory and disk, stream logs, drop into a terminal, or Edit & Recreate to change ports, env or resources.

How is this different from Docker Desktop?

  • It's Apple's engine. Each container runs in its own lightweight VM via Apple's Virtualization framework — sub-second boots, per-container IP addresses, optimized for Apple silicon.

  • OCI all the way. Pulls from Docker Hub, ghcr.io, quay.io or any registry. Your existing images just work.

  • Nothing between you and the daemon. Davit links Apple's own client library and speaks XPC directly — no socket shims, no license agreements, no accounts.

  • Tiny. A single ~17 MB app.

FAQ

How much memory does it use?

The honest answer is architectural: there's no always-on multi-gigabyte Linux VM. Docker Desktop keeps one big VM running whether or not you have containers; Apple's platform instead boots a separate lightweight VM per container, sized to that container, and tears it down when the container stops. With nothing running, the platform's background services idle at roughly 25 MB. Davit itself is a native SwiftUI app (no Electron) — its footprint is mostly shared macOS framework memory. So the more containers you're not running, the less it costs you.

How does it compare to OrbStack?

OrbStack is a polished commercial app with its own Docker-compatible virtualization layer. Davit is free and open source, and is a UI on top of Apple's own container platform — so the engine is Apple's, not a third party's. Both run standard OCI images. If you specifically want Apple's Containerization stack (per-container VMs, Apple-silicon-native), Davit gives you a native front-end for it; if you want a drop-in Docker daemon replacement with broad tooling compatibility, OrbStack is the more mature choice today.

Can I reach a container by name from my Mac?

Each container gets its own IP (shown in the container's Network section), so you can always hit it directly. For name-based access, a common trick is to run Avahi inside the guest to broadcast a .local alias over mDNS/zeroconf — see this gist. Built-in name resolution is on the roadmap.

Is it signed and safe to run?

Yes — every release is Developer ID signed and notarized by Apple, so it opens without Gatekeeper warnings. It's open source (MIT); you can read or build it yourself. It talks only to your local container daemon and to GitHub for update checks.

Do I need the container CLI installed?

No. Davit talks to the platform directly over XPC. If the platform isn't present, Davit can download and install Apple's signed package for you on first launch — no admin password required. It can optionally add the container CLI to your shell from Settings if you want it.

Hacker News · 项目/工具 · 152 赞 · 32 评 讨论 → 阅读原文 →

这条对你有帮助吗?