笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
Davit:原生 macOS 容器 UI,直接对话 Apple 容器守护进程
Davit 是一款纯原生 macOS 容器管理工具,通过 XPC 直接与 Apple 的开源容器守护进程通信,无需 Electron、Web 视图或后台代理,提供轻量、高效的容器管理体验。
背景:macOS 上的容器生态
在 macOS 上管理容器,大多数开发者首先想到的是 Docker Desktop。然而,Docker Desktop 基于 HyperKit 或 Virtualization.framework,本身是 Electron 应用,资源占用较高,且需要用户接受许可协议、注册账户。Apple 在 macOS 上提供了自己的容器技术栈,包括基于 Virtualization.framework 的轻量级虚拟机,以及开源的容器守护进程(containerd 等),但缺乏原生图形界面。Davit 正是填补这一空白的产品。
核心架构:原生、直接、无中间层
Davit 最显著的特点是“原生”。它完全用 SwiftUI 编写,不包含任何 Electron 或 Web 视图组件。与 Apple 容器守护进程的通信走的是 XPC(XNU 进程间通信)通道——与命令行工具 docker(或 Apple 的 container CLI)使用的是完全相同的底层通信机制。这意味着:
- 无 socket shim:不需要通过 Unix socket 转发请求,减少了延迟和故障点。
- 无许可协议:不要求用户同意 Docker 的条款。
- 无账户:无需登录或注册。
- 无后台代理:Davit 本身没有独立的守护进程或后台代理,所有操作直接与系统已有的容器守护进程交互。
功能详解:从容器管理到平台安装
1. 容器生命周期管理
Davit 提供标准的容器操作:启动、停止、重启、删除。每个容器行实时显示 CPU、内存使用率和 IP 地址。这些数据每 2 秒采样一次,通过原生图表渲染,不依赖浏览器。
日志查看:支持流式日志,包含 follow 模式(持续跟踪新日志)和 boot 模式(仅显示启动日志)。
实时统计图表:每个容器的 CPU 和内存使用情况以图表形式呈现,直接由 SwiftUI 绘制,无需启动浏览器。
原始配置检查:可以查看容器的完整 JSON 配置,便于调试。
2. 一键终端访问
在任何运行中的容器上点击,即可直接打开一个交互式 shell。Davit 通过原生 API 将终端会话发送到 macOS 自带的 Terminal 或第三方终端 iTerm,完全不需要调用 CLI。这意味着即使系统没有安装 docker CLI,也能通过图形界面进入容器。
3. 编辑与重建(Edit & Recreate)
容器本质上是不可变的——你不能修改一个运行中容器的配置。Davit 的解决方式是:从旧容器的配置中预填充一个新容器的创建表单,并自动减去镜像的入口点(entrypoint)和环境变量(env),因为新容器会继承镜像的默认值。用户只需修改端口映射、环境变量、挂载卷或资源限制,几秒钟内即可重建容器。
4. 镜像、卷、网络管理
- 镜像:支持从 Docker Hub、ghcr.io、quay.io 或任何私有仓库拉取镜像,拉取过程显示实时进度。可以从任意镜像创建容器,支持标签管理和修剪(prune)。镜像列表显示大小、平台架构以及是否被使用(in-use badge)。
- 卷:创建指定大小的卷,支持命名卷和绑定挂载。
- 网络:创建自定义子网,查看每个网络的连接状态。
删除任何资源前,Davit 会显示该资源是否正在被使用,防止误删。
5. 平台设置与配置编辑
Davit 允许用户编辑默认的容器运行时参数:
- 新容器的默认 CPU 和内存限制
- 镜像仓库配置(registry)
- DNS 设置
- 构建器资源分配
所有修改通过 Apple 平台自身的配置加载器验证,并以干净的 TOML 覆盖文件保存。这意味着配置格式正确、与 CLI 兼容,不会污染系统配置。
6. 自动安装容器平台
如果系统上尚未安装任何容器平台,Davit 可以自动下载 Apple 签名的安装器,验证其签名,然后安装在用户的 ~/Library 下——整个过程不需要管理员权限(即不需要 sudo)。安装后,它还可以将容器 CLI 添加到用户的 shell 配置中。
与 Docker Desktop 的关键区别
| 特性 | Davit | Docker Desktop |
|---|---|---|
| 底层引擎 | Apple 容器引擎(基于 Virtualization.framework) | Docker 引擎(基于 HyperKit / Virtualization.framework) |
| 虚拟机模型 | 每个容器一个轻量级 VM,秒级启动,每个容器独立 IP | 共享 VM 或每个容器独立 VM |
| UI 技术栈 | 原生 SwiftUI,无 Electron | Electron(Chromium + Node.js) |
| 通信方式 | 直接 XPC,无 socket shim | Unix socket 或 gRPC |
| 许可与账户 | 无许可协议,无账户要求 | 需接受 Docker 订阅协议,部分功能需账户 |
| 应用大小 | 约 17 MB(单个应用) | 数百 MB(含 Electron 运行时) |
| Apple Silicon 优化 | 原生优化,充分利用 M 系列芯片 | 通过 Rosetta 或虚拟化,部分优化 |
技术细节:OCI 兼容与轻量级 VM
Davit 使用的 Apple 容器引擎完全兼容 OCI(Open Container Initiative)标准。这意味着:
- 可以从任何 OCI 兼容的镜像仓库拉取镜像(Docker Hub、ghcr.io、quay.io 等)。
- 现有的 Docker 镜像可以直接使用,无需转换。
- 每个容器运行在由
Virtualization.framework创建的独立轻量级虚拟机中,启动时间通常在亚秒级。 - 每个容器拥有独立的 IP 地址(通过虚拟网络接口),便于网络隔离和服务发现。
用户体验设计:菜单栏与 Dock
Davit 提供菜单栏快捷操作,可以快速启动/停止容器,查看状态。Dock 图标是可选的——用户可以选择只在需要时显示 Dock 图标,减少桌面 clutter。实时图表直接在应用窗口内渲染,不启动浏览器,也不消耗额外的 Web 渲染进程。
总结
Davit 是一个专注于 macOS 原生体验的容器管理工具。它通过直接使用 Apple 的开源容器守护进程和 XPC 通信,避免了传统容器管理工具(如 Docker Desktop)的臃肿和许可限制。对于希望在 macOS 上获得轻量、快速、原生容器管理体验的开发者来说,Davit 提供了一个简洁而强大的选择。
原文链接:https://davit.app