仓库
仓库是远程服务器上的一个 LUKS 加密磁盘映像。挂载后,它提供:
- 应用数据的隔离文件系统
- 专用的 Docker 守护进程(与主机的 Docker 分离)
- 在 /26 子网内为每个服务分配唯一的回环 IP
创建仓库
rdc repo create --name my-app -m server-1 --size 10G
CLI参考: rdc repo create
| 选项 | 必填 | 描述 |
|---|---|---|
-m, --machine <name> | 是 | 将要创建仓库的目标机器。 |
--size <size> | 是 | 加密磁盘映像的大小(例如 5G、10G、50G)。 |
--skip-router-restart | No | Skip restarting the route server after the operation |
输出将显示三个自动生成的值:
- 仓库 GUID — 用于在服务器上标识加密磁盘映像的 UUID。
- 凭据 — 用于加密/解密 LUKS 卷的随机密码短语。
- 网络 ID — 一个整数(从 2816 开始,每次递增 64),用于确定此仓库服务的 IP 子网。
**请安全存储凭据。**它是您仓库的加密密钥。如果丢失,数据将无法恢复。凭据存储在您的本地
config.json中,但不会存储在服务器上。
挂载和卸载
挂载操作解密并使仓库文件系统可访问。卸载操作关闭加密卷。
rdc repo mount --name my-app -m server-1 # 解密并挂载
rdc repo unmount --name my-app -m server-1 # 卸载并重新加密
| 选项 | 描述 |
|---|---|
--checkpoint | 挂载/卸载前创建CRIU检查点(用于带有rediacc.checkpoint=true标签的容器) |
--skip-router-restart | Skip restarting the route server after the operation |
检查状态
rdc repo status --name my-app -m server-1
CLI参考: rdc repo status
列出仓库
rdc repo list -m server-1
CLI参考: rdc repo list
调整大小
将仓库设置为指定大小或扩展指定容量:
rdc repo resize --name my-app -m server-1 --size 20G # 设置为指定大小
rdc repo expand --name my-app -m server-1 --size 5G # 在当前大小基础上增加 5G
调整大小前必须先卸载仓库。
复刻
创建现有仓库当前状态的副本:
rdc repo fork --parent my-app --tag staging -m server-1
CLI参考: rdc repo fork
复刻使用 name:tag 模型:生成的复刻命名为 my-app:staging。此命令创建一个具有独立 GUID 和网络 ID 的新加密副本,同时共享父仓库的名称。复刻仓库与源仓库共享相同的 LUKS 凭据。
验证
检查仓库的文件系统完整性:
rdc repo validate --name my-app -m server-1
CLI参考: rdc repo validate
所有权
将仓库内的文件所有权设置为通用用户(UID 7111)。通常在从工作站上传文件后需要执行此操作,因为上传的文件会使用您本地的 UID。
rdc repo ownership --name my-app -m server-1
CLI参考: rdc repo ownership
此命令会自动检测 Docker 容器数据目录(可写绑定挂载)并将其排除。这可以防止破坏使用自身 UID 管理文件的容器(例如 MariaDB=999、www-data=33)。
| 选项 | 描述 |
|---|---|
--uid <uid> | 设置自定义 UID,而非默认的 7111 |
--skip-router-restart | Skip restarting the route server after the operation |
强制对所有文件(包括容器数据)设置所有权:
rdc repo ownership --name my-app -m server-1
CLI参考: rdc repo ownership
有关迁移过程中何时以及如何使用所有权命令的完整说明,请参阅迁移指南。
模板
应用模板以使用文件初始化仓库:
rdc repo template apply --name my-template -m server-1 -r my-app --file ./my-template.tar.gz
CLI参考: rdc repo template apply
删除
永久销毁仓库及其中的所有数据:
rdc repo delete --name my-app -m server-1
CLI参考: rdc repo delete
此操作将永久销毁加密磁盘映像。此操作无法撤销。