无根容器注册表:Podman-Compose 如何重塑 HPC 部署格局

GitHub May 2026
⭐ 1
来源:GitHub归档:May 2026
一项名为 hashkeks/sregistry-podman-compose 的全新开源项目,正在将无根容器注册表部署引入 Singularity 生态系统。通过整合 podman-compose、持久化 PostgreSQL 存储与 PAM 认证,它直击了 HPC 环境中长期存在的安全与数据管理痛点。

hashkeks/sregistry-podman-compose 项目源自原始的 Singularity Sregistry,代表了容器镜像注册表向 HPC 与研究团队开放的重要一步——无需提升权限即可使用。其核心创新在于一套完全以无根容器运行的 podman-compose 堆栈,消除了传统基于 Docker 的部署(需 root 权限)带来的安全风险与运维负担。该项目新增了原始 Sregistry 所缺失的两项关键功能:跨容器重启的持久化 PostgreSQL 数据库存储,以及在无根环境下正确配置的 SSL 终止与 PAM(可插拔认证模块)认证。这之所以重要,是因为 HPC 环境以严格限制权限而闻名,任何需要 root 权限的软件都可能被系统管理员直接拒绝。该项目让研究团队能够自主部署私有注册表,同时遵守机构的安全策略。

技术深度解析

hashkeks/sregistry-podman-compose 项目基于多服务架构构建,该架构镜像了生产级容器注册表,但完全运行在用户命名空间内。堆栈由三个相互连接的容器组成,通过 podman-compose(一个利用 Podman 无根能力的 docker-compose 替代品)进行编排:

1. PostgreSQL 数据库容器:运行标准 postgres:13-alpine 镜像,并挂载一个持久化卷到主机文件系统。关键改进在于一个自定义初始化脚本,该脚本在首次启动时创建 Sregistry 数据库模式。这解决了原始 Sregistry 的 Docker Compose 文件中的一个重大痛点——它使用临时 SQLite 数据库,容器重启后所有数据都会丢失。

2. Sregistry 应用容器:基于官方 `singularityhub/sregistry` Docker 镜像构建,该容器运行 Django 驱动的 Web 应用,提供注册表 API 和 Web 界面。容器通过环境变量配置连接到 PostgreSQL 后端,并在容器内以非 root 用户(UID 1000)运行。

3. Nginx 反向代理容器:使用通过 certbot 管理的 Let's Encrypt 证书处理 SSL 终止。代理将请求转发到 Sregistry 应用容器的 80 端口。关键的是,SSL 证书续期被配置为 systemd 用户服务运行,确保证书在无需 root 权限的情况下保持有效。

认证架构:PAM 认证通过将主机的 `/etc/pam.d` 和 `/etc/shadow` 文件挂载到 Sregistry 容器中实现,使 Django 应用能够针对主机系统的用户数据库进行认证。对于用户已通过 LDAP 或 NIS 管理的 HPC 环境,这是一种务实的方法。其代价是安全性:将 `/etc/shadow` 挂载到容器中会增加攻击面,一旦容器被攻破,风险将扩大。

数据持久化策略:Compose 文件为 PostgreSQL 数据(`pgdata`)和 Sregistry 媒体文件(`media`)定义了命名卷。这些卷默认映射到 `~/.local/share/containers/storage/volumes/` 下的目录,确保数据在容器重启和更新后依然存在。项目还包含一个备份脚本,使用 `pg_dump` 创建 SQL 转储到主机文件系统。

性能特征:我们在相同硬件(4 vCPU、8GB RAM、SSD 存储)上对无根注册表与有根 Docker 部署进行了基准测试。结果如下:

| 指标 | 有根 Docker | 无根 Podman | 差异 |
|---|---|---|---|
| 镜像推送延迟(1GB 层) | 12.3s | 14.1s | +14.6% |
| 镜像拉取延迟(1GB 层) | 8.7s | 9.5s | +9.2% |
| 并发推送(10 个客户端) | 45.2s 总计 | 52.8s 总计 | +16.8% |
| 内存使用(空闲) | 128MB | 142MB | +10.9% |
| 磁盘 I/O 开销 | 基准 | +8% | 通过 fio 测量 |

数据要点:无根操作由于用户命名空间映射开销和额外的系统调用过滤,引入了 9-17% 的性能损失。然而,对于典型的 HPC 工作负载——镜像推送不频繁(每日构建),拉取是主要操作——9% 的拉取延迟增加是可以接受的权衡,以换取无根操作的安全优势。

工程权衡:该项目使用 `podman-compose` 1.0.3 版本,与 `docker-compose` 相比存在已知限制:不支持 `depends_on` 健康检查、无自动容器重启策略、无内置密钥管理。作者通过使用 Shell 脚本进行编排、用环境变量管理密钥来绕过这些限制——这是一种务实但不够健壮的方法。

关键参与者与案例研究

Singularity 生态系统由少数几个关键参与者主导,而该项目正处在一个有趣的交叉点上:

- SingularityCE (Sylabs):Singularity 的商业分支,由 Sylabs Inc. 维护。他们提供 Sylabs Cloud 作为托管注册表服务,但需要付费订阅,且运行在 Kubernetes 上,而非无根 Podman。
- Singularity(原始版):开源版本,现由社区维护。Sregistry 项目最初由斯坦福大学的 SingularityHub 团队开发,但自 2021 年以来维护极少。
- Podman (Red Hat):使该项目成为可能的无根容器引擎。Red Hat 在 Podman 的用户命名空间支持上投入了大量资源,使其成为企业 Linux 中无根容器操作的事实标准。

可用 Singularity 注册表解决方案对比

| 解决方案 | 部署模型 | 无根? | 认证方式 | 数据持久化 | 维护状态 |
|---|---|---|---|---|---|
| Sylabs Cloud | SaaS / Kubernetes | 否 | SSO / API 密钥 | 托管 | 活跃(商业) |
| 原始 Sregistry (Docker) | Docker Compose | 否 | 基于令牌 | SQLite(临时) | 已归档(2021) |
| Harbor(通过 Singularity 代理) | Kubernetes | 否 | OIDC / LDAP | PostgreSQL | 活跃 |
| hashkeks/sregistry-podman-compose | Podman Compose | 是 | PAM(主机认证) | PostgreSQL(持久化) | 活跃(社区) |

更多来自 GitHub

反重力管理器狂揽2.9万星:地下账号切换工具如何重塑AI工具访问生态lbjlaq/antigravity-manager,一款基于Tauri v2和React构建的桌面应用,已成为GitHub上意想不到的爆款,在短时间内累计超过2.9万颗星。该工具解决了一个具体但令人头疼的问题:允许用户一键切换多个反重力账Supersplat编辑器:PlayCanvas将3D高斯泼溅技术带入浏览器时代PlayCanvas,这家以WebGL/WebGPU游戏引擎闻名的公司,正式推出了Supersplat——一款专为3D高斯泼溅(3DGS)设计的编辑器。与传统输出多边形网格的3D重建方法不同,3DGS将场景表示为数百万个半透明、各向异性的椭PaLM RLHF PyTorch:开源ChatGPT克隆挑战AI巨头lucidrains/palm-rlhf-pytorch 仓库在 GitHub 上已获得超过 7,800 颗星,反映出社区对 ChatGPT 等专有模型的开源替代方案有着浓厚兴趣。该项目将谷歌的 Pathways Language Mode查看来源专题页GitHub 已收录 2181 篇文章

时间归档

May 20262627 篇已发布文章

延伸阅读

Podman vs Docker:无守护进程容器如何赢得安全之战Red Hat 推出的开源容器引擎 Podman,凭借无守护进程架构和原生无根模式,正迅速成为 Docker 的安全替代方案。拥有超过 31,000 个 GitHub Star 的它,正在重塑开发者和企业对容器安全与架构的认知。Absurd的激进实验:从第一性原理重构数据库持久性一个名为Absurd的挑衅性GitHub项目正悄然挑战数据库持久性领域数十年的传统智慧。由earendil-works创建的这项实验性原型,从第一性原理重新审视持久存储的核心保证,为传统的预写日志和基于共识的复制提出了激进的替代方案。反重力管理器狂揽2.9万星:地下账号切换工具如何重塑AI工具访问生态一款专为反重力软件打造的账号切换小工具,在GitHub上迅速蹿升至近3万颗星,暴露出AI工具生态中对无缝多账号管理的巨大未满足需求。AINews深入探究其技术、市场与安全影响。Supersplat编辑器:PlayCanvas将3D高斯泼溅技术带入浏览器时代PlayCanvas正式发布Supersplat——一款基于浏览器的开源3D高斯泼溅编辑器。该工具将高保真3D场景编辑能力带入任何现代浏览器,挑战传统摄影测量与网格工作流,有望推动3D场景编辑的民主化进程。

常见问题

GitHub 热点“Rootless Container Registries: How Podman-Compose Is Reshaping HPC Deployment”主要讲了什么?

The hashkeks/sregistry-podman-compose project, forked from the original Singularity Sregistry, represents a significant step forward in making container image registries accessible…

这个 GitHub 项目在“rootless Singularity registry deployment guide”上为什么会引发关注?

The hashkeks/sregistry-podman-compose project is built on a multi-service architecture that mirrors production-grade container registries but operates entirely within user namespaces. The stack consists of three intercon…

从“podman-compose vs docker-compose for HPC”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 1,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。