Nspawn 回归:OCI 仓库、新镜像与 1.0.0
来源: blog.nspawn.org — 2026-09-23
概述
nspawn 曾经只是一个很小的 Bash 脚本,从一份清单里挑一个 tar 包再交给 machinectl pull-tar,上一个版本 0.6 发布于 2022 年,此后镜像停止重建,2024 年连博客也安静下来。作者上周重新拾起项目,成果是:hub.nspawn.org 变成一个 OCI registry,镜像由 mkosi 在 GitHub Actions 上构建并推送到该仓库,nspawn 1.0.0 发布,用 Rust 重写,通过 D-Bus 与 systemd-machined 交互来拉取 OCI 镜像并管理机器,官网也有了新文档。他同时解释了为什么不复活旧方案。
核心要点
- hub.nspawn.org 现在运行 zot,支持匿名拉取与认证推送、blob 去重、在线 GC,还自带一个可以浏览镜像的小型 Web UI。
- 镜像由 mkosi 在 GitHub Actions 上构建并推送,任何符合 OCI 的客户端甚至 curl 都能取用。
- nspawn 1.0.0 是 Rust 重写的客户端,自己完成拉取与组装,并通过 D-Bus 管理机器。
- 旧方案不可行的原因之一:machinectl pull-* 在 systemd 256 已迁到 importctl,解析命令输出本就脆弱且不是稳定 API。
- 在 OBS 上构建 tar.xz 镜像的尝试也失败了:没有 OCI 输出、缺少可用的 mkosi,CDN 还提供了过期的 tar 包与新的校验和。
金句
最终的决定是:使用 OCI 镜像、一个真正的仓库,以及一个自己完成拉取与组装过程的客户端。
👍 0
👎 0
← 返回 Lobsters 首页