中文EN
ResearchX Docs
中文

容器管理

项目持久化容器、资源配置、镜像选择与项目镜像构建的用户操作说明

容器管理

本页汇总当前用户可见的容器管理能力,包含项目级持久化容器、镜像与资源配置、固定挂载展示,以及开发模式下的项目镜像构建。

你现在可以做什么

  • 为项目启用或禁用持久化容器环境
  • 查看容器当前状态、镜像名、容器名和系统固定挂载
  • 启动、停止或在报错后重试项目容器
  • 在启用前选择本机已有镜像,或直接填写镜像名称拉取
  • 为项目保存 CPU、内存、GPU 数量、GPU 驱动和显存配置
  • 在 Slurm 部署中选择是否用已绑定的 Linux 用户身份运行项目环境
  • 在开发模式项目中生成 Dockerfile 草稿、发起镜像构建、查看日志,并把成功构建设为项目镜像

持久化容器环境

入口:项目工作台顶部 Settings -> Persistent data environment

开启后:

  • 同一项目下的会话共享同一个容器环境
  • Agent 的 ReadBashEditWrite 会优先在容器内执行
  • 在容器里安装的 Python、pip、npm 等依赖可跨会话复用
  • 项目工作目录会持续保留,容器内工作流更稳定

状态说明

  • Running:容器正在运行,新的会话和工具调用会直接复用当前环境
  • Stopped:容器当前已停用;再次发起需要容器的操作时,系统通常会自动拉起
  • Stopping:系统正在停止容器;此时请等待状态刷新,避免重复点击
  • Waiting for resources:容器因资源配额不足暂时无法启动,等待其他项目释放资源后自动唤醒;状态指示器会显示琥珀色提示和具体瓶颈信息
  • Error:容器启动或运行失败;owner 可重试或重新启用
  • Disabled / Not Enabled:项目还未启用持久化容器

当前可管理信息

在设置卡片里可以直接查看:

  • 当前使用的项目容器镜像
  • 当前容器名称
  • 管理员配置的系统固定挂载列表
  • 容器是否配额超限
  • 最近一次错误信息(如有)

镜像与资源配置

owner 在项目设置中可配置以下内容:

  • 使用本地镜像:从当前机器已存在的镜像列表中直接选择
  • 或通过名称拉取镜像:手动填写镜像名,例如 python:3.12-slim
  • CPU count:项目容器 CPU 核数
  • Memory (MB):项目容器内存上限
  • GPU count:项目容器启用的 GPU 数量
  • GPU driver:GPU 驱动类型,默认一般为 nvidia
  • GPU memory (GB):GPU 显存信息

使用建议:

  • CPU / 内存留空或填写 0 时,表示使用系统默认限制
  • GPU 数量留空或填写 0 时,表示该项目容器不启用 GPU
  • 这些配置会按项目保存,供后续启用或重建容器时使用
  • 如果容器已经在运行,修改配置后通常需要停止并重新启用,或等待系统按新配置重建,才能完整应用新的镜像与资源参数

绑定 Linux 用户运行

在启用了 Linux 用户绑定的 Slurm 部署中,项目 owner 可在 Persistent data environment 设置中打开 使用绑定 Linux 用户运行。开启后,支持 Slurm 的项目任务会尽量以当前成员绑定的 Linux 身份执行,并使用该 Linux 用户可访问的家目录与项目工作区权限。

使用前提:

  • 管理员已在部署中启用 Linux 用户绑定
  • 当前用户已在 /workspace/profile 绑定 Linux 用户
  • 项目使用 Slurm 执行平台

操作方式:

  1. 进入项目工作台
  2. 打开顶部 Settings
  3. Persistent data environment 中勾选 使用绑定 Linux 用户运行
  4. 点击 保存运行方式

说明:

  • 只有项目 owner 可以修改该运行方式
  • 未绑定 Linux 用户时无法开启
  • 关闭后,项目恢复使用部署默认的 Slurm 运行身份
  • 如果容器或工作区已经准备完成,切换该选项后可能需要重新启动或重新启用项目环境

启用、停用与删除的区别

  • Enable
    • 为项目创建并启用持久化容器
    • 启用时会使用当前保存的镜像与资源配置
  • Start
    • 启动一个已启用但当前停止的容器
    • 适合临时停机后继续使用原环境
  • Stop
    • 只停止当前容器,不删除项目工作区文件
    • 下次可手动启动,也可能在需要时自动唤醒
    • Docker 与 Kubernetes 后端都会尽量释放资源租约,并更新项目状态
  • Disable
    • 删除该项目的持久化容器
    • 容器内已安装依赖和系统环境会丢失
    • 项目本地工作区文件仍会保留
    • 如果禁用过程中运行时删除失败,系统会回滚启用状态并保留错误提示

状态一致性与自动修复

容器状态现在会由后台控制器定期校准,避免“页面显示运行中,但真实容器已丢失”或“容器已停止但资源仍被占用”的情况长期存在。

系统会自动处理:

  • Docker 或 Kubernetes 实际状态与项目记录不一致
  • 宿主机或集群重启后容器状态丢失
  • 容器停止、禁用或资源释放后的租约清理
  • Kubernetes Job / Pod 已结束但项目仍显示运行中

用户侧建议:

  • 如果状态短暂显示 StoppingWaiting for resourcesError,先刷新状态或等待下一次自动同步
  • 如果长时间停留在异常状态,由 manager/owner 点击 RetryStartDisable 重新整理环境
  • 管理员可在资源配额的运行中容器列表中手动停止异常项目容器

权限边界

  • owner
    • 可以 EnableDisable
    • 可以修改镜像和资源设置
    • 可以在错误状态下执行 Retry
  • manager
    • 当容器已启用后,可以 StartStop
    • 可以查看容器状态与当前配置
  • editor / viewer
    • 可以查看容器状态
    • 不能启用、禁用,也不能修改项目容器配置

项目镜像构建

入口:项目工作台中的 容器构建

这部分能力用于为项目准备更贴合业务的自定义镜像,例如预装 Python 包、系统依赖、CUDA 环境或常用工具链。

使用前提

  • 项目必须处于 dev 模式
  • 管理员已启用系统级容器构建功能
  • 至少具备项目工作区写权限(通常为 editor 及以上)

你可以做什么

  • 用自然语言需求生成 Dockerfile 草稿
  • 手动调整 Dockerfile.dockerignore
  • 校验草稿
  • 发起新构建
  • 查看构建状态与日志
  • 取消仍在进行中的构建
  • 删除不再需要的构建记录
  • 修改排队中或已成功构建的镜像名称

设为项目镜像

当构建成功后:

  • manager 及以上角色可以点击 设为项目镜像
  • 这会把该构建产出的镜像保存为项目容器镜像配置
  • 后续启用、重建或重新创建项目持久化容器时,会优先使用这个项目镜像

典型场景

场景 1:让多个会话复用同一套 Python 环境

  1. 由 owner 在项目设置中启用 Persistent data environment
  2. 在一个会话里安装依赖,例如 pandasscanpy
  3. 在同一项目的其他会话里直接继续使用这些依赖

场景 2:给 GPU 项目准备固定运行环境

  1. owner 在项目设置里保存 GPU 数量、驱动和显存信息
  2. 如需特定基础镜像,可选择本地镜像或填写远端镜像名
  3. 启用或重建容器后,Agent 会优先在该环境中运行容器相关操作

场景 3:为开发模式项目制作专用镜像

  1. 切换项目到 dev 模式
  2. 打开 容器构建
  3. 输入需求描述生成 Dockerfile 草稿
  4. 校验并发起构建
  5. 构建成功后设为项目镜像
  6. 重新启用或重建项目容器,使新镜像生效

相关文档