ContainerDesktop:macOS 容器图形管理工具
为 Apple container CLI 提供原生 SwiftUI 图形界面,让 macOS 用户在桌面管理容器、镜像与集群。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.10.0
- 平台
- macOS
详细介绍
项目简介
Container Desktop 是一个原生 macOS 应用,为 Apple 官方的 container CLI 提供 Docker Desktop 风格的图形界面。它不重新实现任何容器逻辑:每个操作都会调用官方 container CLI 并解析其 JSON 输出,因此界面显示的内容与命令行一致。
应用使用 SwiftUI 编写,采用 Liquid Glass 风格,支持英文、波兰文和简体中文,并带有一个 WidgetKit 桌面小组件。

主要功能
容器管理
- 卡片或表格视图:卡片显示状态块、实时 CPU 与内存仪表、可点击的端口标签;表格视图便于密集扫读
- 列表显示实时状态、IP 地址和映射端口,支持一键在浏览器中打开
- 详情面板包含日志、实时统计、文件浏览、inspect 和内嵌终端(通过 SwiftTerm 执行
exec -it) - 原生日志查看器:连续选择、全部复制、可选时间戳、按严重级别着色(错误红色、警告橙色)
- 启动 / 停止 / 重启 / kill / 删除 / prune,带逐容器进度指示
- 运行容器对话框:端口、环境变量、卷(可选已有卷或本地文件夹)、资源、网络、架构(arm64 / amd64,自动 Rosetta)、entrypoint、
--rm,并实时预览可复制的完整命令 - 可修改已有容器的命令 / 配置,应用会以原配置预填并重建容器(卷数据保留)
- 镜像拉取进度实时流式显示
Docker Compose
粘贴 docker-compose.yml,应用会将其翻译成 container run 调用:创建项目网络、按依赖排序、在列表中按项目分组并支持整体启停。通过 x-init: true 服务扩展可执行一次性初始化任务(如建库),并在其他服务启动前完成。host.containers.internal 别名解析到项目网络网关,服务主机名通过 /etc/hosts 在容器间互通。

| 日志查看器 | 内嵌终端 |
|---|---|
![]() |
![]() |
实时统计

- CPU 百分比、内存、网络与磁盘吞吐、进程数,每秒刷新
- 基于 Swift Charts,可选择时间窗口(1–15 分钟)并悬停查看采样点
镜像、卷、网络、Registry、机器

- 拉取与构建(Dockerfile)并流式显示进度,从镜像运行,打标签 / 删除 / prune / inspect
- 卷与网络的创建、删除、prune、inspect,卷支持文件浏览
- Registry 登录(密码通过 stdin 安全传入)
- 容器机器的创建、设为默认、停止、删除
Kubernetes 与 Helm
- 通过
container k8s插件(container 1.2.1+,Apple 标记为 EXPERIMENTAL)创建本地集群,可选名称、CPU、内存与节点镜像,支持启动、删除,以及把本地构建的镜像加载进集群 containerd - 集群创建过程流式显示进度,首次运行需下载约 850 MB 的节点镜像
- Helm:仓库管理、chart 搜索、release 升级、通过
helm history回滚与卸载 - 由 chart 自带
values.yaml生成的动态表单,支持类型感知控件、注释帮助文本、键过滤和同步的原始 YAML 标签页;只有改动过的键会写入-f - Check(dry run) 先在集群上渲染,提前暴露模板错误与
values.schema.json违规 - 所有 helm 命令都绑定到所选集群的应用托管 kubeconfig,不会读取或修改你的
~/.kube/config
桌面小组件与系统

- WidgetKit 小组件三种尺寸:运行数量与服务健康、带 CPU 的实时列表、按 Compose 项目分组
- 服务状态与安全启停、磁盘占用与可回收空间、builder 管理、本地 DNS 域名、系统属性与内置服务日志查看器
- 菜单栏附加项:服务状态、运行中容器一键停止、全部停止、跳转任意分区
- 通过 Sparkle 自动更新,appcast 由 GitHub Pages 提供并用 EdDSA 签名

安装与使用
系统要求
- Apple Silicon 上的 macOS 26 (Tahoe)
- 已安装
containerCLI(默认路径/usr/local/bin/container,可在设置中指定自定义路径) - 可选:
helm用于 Helm 分区(brew install helm);本地 Kubernetes 集群需要container1.2.1+
从 release DMG 安装
从 Releases 下载 DMG,打开后把 Container Desktop 拖到「应用程序」文件夹。
从源码构建
brew install xcodegen
git clone https://github.com/sembsa/ContainerDesktop.git && cd ContainerDesktop
xcodegen generate
xcodebuild -project ContainerGUI.xcodeproj -scheme ContainerGUI \
-destination 'platform=macOS' -derivedDataPath .build build
open .build/Build/Products/Debug/ContainerGUI.app
运行测试:
xcodebuild test -project ContainerGUI.xcodeproj -scheme ContainerGUI \
-destination 'platform=macOS' -derivedDataPath .build
生成可分发的 DMG(ad-hoc 签名,未公证):
scripts/package.sh # 输出 dist/ContainerDesktop.dmg
注意事项
- Release 版本目前未做公证(没有付费 Apple Developer 会员)。首次启动时 macOS 会提示来自身份不明的开发者,可到系统设置 → 隐私与安全性点击仍要打开,或手动移除隔离标记:
xattr -dr com.apple.quarantine "/Applications/ContainerGUI.app"
- 从 0.8.3 起,更新检查会附带一次性生成的随机安装标识、应用版本和 macOS 版本,用于统计使用人数;不会发送 IP 地址、计算机名、账户或硬件信息,Sparkle 的系统信息上报保持关闭。可在设置 → 隐私 → 匿名统计中完全关闭,更新仍可正常工作。
- 应用运行在 App Sandbox 之外(需要调用外部 CLI),因此通过 DMG 直接分发,未上架 Mac App Store。
- 更新经 EdDSA 签名校验,且 Sparkle 会清除已安装更新的隔离属性,首次启动之后无需再处理 Gatekeeper。
本作品整理自 GitHub 开源项目 sembsa/ContainerDesktop,原作者 @sembsa,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.10.0当前版本
新增容器快照:可保存状态、查看历史并回滚,需 container 1.6;Kubernetes 集群可创建 worker 节点;Compose 服务可按服务名互访;兼容 container 1.6 的 container cluster 改名。


评论