中文
容器固定挂载(管理员)
配置自动注入到持久化容器和 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-dev | mnt | /mnt | 是 | 共享数据集 |
Kubernetes PVC 挂载路径固定为 mnt,该目录与 global、projects 同级。主系统会在启动时确保目录存在。
配置步骤
- 进入 管理 → 容器固定挂载
- 选择来源类型,然后填写 服务器路径 或选择 PVC 名称
- Docker 宿主机路径挂载需要填写 容器内路径;Kubernetes PVC 挂载固定使用
/mnt - 勾选 只读挂载 可禁止容器内写入
- 点击 新增挂载 添加更多挂载项
- 点击 保存 应用配置
生效时机
- 新建容器 — 创建时自动应用挂载
- 已在运行的持久化容器 — 需要重启后才能应用新的挂载配置
- 如果绑定挂载在容器创建后发生了变化,系统会在下次启动时自动检测并重建容器
校验规则
系统会执行以下校验:
- 容器内路径在所有挂载项中必须唯一
- 容器内路径不能为
/(根路径) - 容器内路径不能与系统保留路径重叠,例如
/workspace、/app、/etc、/proc、/sys、/dev、/usr、/var、/tmp - 服务器路径必须为绝对路径
- PVC 名称必须是合法 Kubernetes 资源名
- Kubernetes PVC 子路径固定为
mnt,容器内路径固定为/mnt - 主系统启动时会对 workspace 根目录执行简单的
mkdir -p mnt;mnt下已有文件会保留 - 重复的容器内路径会被拒绝并提示错误
安全注意事项
- 宿主机路径挂载使用 Docker 绑定挂载语义——容器可直接访问宿主机文件
- PVC 挂载使用 Kubernetes
persistentVolumeClaimvolume,会注入到持久化 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 可读。