中文EN
ResearchX Docs
中文

容器固定挂载(管理员)

配置自动注入到持久化容器和 Agent 容器的固定宿主机或 PVC 挂载

容器固定挂载

容器固定挂载允许管理员配置固定挂载,这些挂载会自动注入到所有持久化容器和 Agent 容器中。Docker 部署使用宿主机绑定挂载;Kubernetes 部署可挂载管理员维护的 PVC。

概述

配置完成后,挂载项以系统级设置存储,在容器创建时自动应用:

  • 持久化容器 — 在容器创建或重建时包含挂载
  • Agent(临时)容器 — 每次 Docker 运行或 Kubernetes Job 中自动包含挂载
  • Agent 工具运行时 — 只读文件浏览类工具会继承这些挂载信息,便于在受控路径中读取共享数据
  • 所有挂载路径在保存前会进行唯一性和正确性校验

前提条件

  • 管理员角色 — 仅管理员可管理容器挂载设置
  • Docker 宿主机路径挂载 需要 Docker 能访问配置的宿主机路径
  • Kubernetes PVC 挂载 需要 PVC 已存在于运行时命名空间中,且准备好要挂载的子目录

访问路径

导航至:管理 → 容器固定挂载/workspace/admin/container-mounts

配置说明

每条挂载项包含以下字段:

字段说明要求
来源类型宿主机路径或 Kubernetes PVC选择当前部署模式支持的来源
服务器路径(Host Path)宿主机上的绝对路径宿主机路径挂载必填
PVC 名称Kubernetes PVC 名称PVC 挂载必填;可从运行时命名空间可见的 PVC 中选择
PVC 子路径Kubernetes 模式固定路径固定为 PVC 根目录下的 mnt,管理员无需填写,主系统会在启动时确保目录存在
容器内路径(Container Path)容器内挂载路径Kubernetes 模式固定为 /mnt;Docker 宿主机路径挂载时必须填写绝对 POSIX 路径
只读挂载以只读方式挂载到容器可选复选框

示例挂载

服务器路径容器内路径只读用途
/srv/datasets/mnt/datasets共享只读数据集
/srv/shared-output/mnt/output共享可写输出目录
/etc/custom-config/etc/custom-config配置文件

Kubernetes PVC 示例:

PVC子路径容器内路径只读用途
juicefs-devmnt/mnt共享数据集

Kubernetes PVC 挂载路径固定为 mnt,该目录与 globalprojects 同级。主系统会在启动时确保目录存在。

配置步骤

  1. 进入 管理 → 容器固定挂载
  2. 选择来源类型,然后填写 服务器路径 或选择 PVC 名称
  3. Docker 宿主机路径挂载需要填写 容器内路径;Kubernetes PVC 挂载固定使用 /mnt
  4. 勾选 只读挂载 可禁止容器内写入
  5. 点击 新增挂载 添加更多挂载项
  6. 点击 保存 应用配置

生效时机

  • 新建容器 — 创建时自动应用挂载
  • 已在运行的持久化容器 — 需要重启后才能应用新的挂载配置
  • 如果绑定挂载在容器创建后发生了变化,系统会在下次启动时自动检测并重建容器

校验规则

系统会执行以下校验:

  • 容器内路径在所有挂载项中必须唯一
  • 容器内路径不能为 /(根路径)
  • 容器内路径不能与系统保留路径重叠,例如 /workspace/app/etc/proc/sys/dev/usr/var/tmp
  • 服务器路径必须为绝对路径
  • PVC 名称必须是合法 Kubernetes 资源名
  • Kubernetes PVC 子路径固定为 mnt,容器内路径固定为 /mnt
  • 主系统启动时会对 workspace 根目录执行简单的 mkdir -p mntmnt 下已有文件会保留
  • 重复的容器内路径会被拒绝并提示错误

安全注意事项

  • 宿主机路径挂载使用 Docker 绑定挂载语义——容器可直接访问宿主机文件
  • PVC 挂载使用 Kubernetes persistentVolumeClaim volume,会注入到持久化 Deployment 和临时 Job 中
  • 对于不应被容器内修改的数据,建议开启只读挂载
  • 系统会校验挂载路径不与容器工作区路径冲突
  • 仅管理员可配置挂载——普通用户无法修改挂载设置

常见问题

"container_path must be unique"

两条挂载项使用了相同的容器内路径,请删除或修改其中一条。

"container_path must be an absolute POSIX path"

容器内路径必须以 / 开头(如 /mnt/data,而非 mnt/data)。

挂载未在容器中生效

重启持久化容器——运行中的容器不会自动应用挂载变更,需重启后生效。

挂载文件权限不足

宿主机路径挂载需确保路径存在且 Docker 有访问权限。PVC 挂载需确保 PVC 已在运行时命名空间中 Bound,且其中的文件对运行时 UID/GID 可读。

相关文档