一、背景与目标

实验室 GPU 集群采用 Slurm + Open OnDemand(OOD)作为统一入口,所有计算必须通过调度系统。

Docker 在这里定位为“高级用户自助工具”,只提供 rootless 模式,管理员不负责支持和 debug。

具体目标很简单:

你只维护一套最小可用的 rootless Docker 环境;

保证不会绕过 Slurm 和资源配额;

镜像和垃圾全算在用户 HOME 配额里,玩坏了自己负责。


二、整体设计与原则

整体设计是这样:

只在计算节点安装 Docker Engine 与 rootless 组件,登录节点不提供 dockerd;

系统级 dockerd 服务完全禁用,不允许任何 rootful Docker;

禁止使用 dockerd-rootless-setuptool.sh install 创建 user systemd 服务;

要求用户在 Slurm 作业(包括 IAPP)内部用 dockerd-rootless.sh 临时启动 rootless daemon,作业结束 daemon 和容器一并被 cgroup 杀掉;

镜像和容器元数据存放在 ~/.local/share/docker,HOME 有 20G 硬限额,写满自己收拾。

根本原则只有两条:

不能绕过 Slurm 调度(不在登录节点常驻任何 daemon);

不能把系统级维护责任变成你的锅(Docker 是“自备玩具”)。


三、部署过程(管理员视角)