保存为镜像
把运行中的实例(已装好依赖、下好权重)一键保存为自定义镜像,下次直接用它启动,省去重复环境配置。
该功能需平台侧配置镜像仓库(
ARK_IMAGE_REGISTRY*)后才可用。未配置时调用返回503 REGISTRY_NOT_CONFIGURED。
保存(commit)
实例须为 running 且 runtime=docker(VM 不支持):
bash
curl -X POST "$ARK_API/rentals/$RENTAL_ID/commit" \
-H "Authorization: Bearer $ARK_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "my-finetuned-env", "description": "PyTorch + 已装依赖 + 权重" }'这是异步操作:在实例所在节点执行 docker commit 并推送到镜像仓库。返回的镜像记录初始 status: committing,完成后变 ready(填入 size_mb、ready_at),失败则 failed(带 error_msg)。
镜像引用形如 <registry>/<repo>:userimg-<镜像ID前8位>。
管理镜像
bash
# 列出镜像
curl -s "$ARK_API/images" -H "Authorization: Bearer $ARK_TOKEN" | jq '.images[] | {id, name, status, size_mb}'
# 删除镜像记录
curl -X DELETE "$ARK_API/images/$IMAGE_ID" -H "Authorization: Bearer $ARK_TOKEN"删除只移除元数据记录;仓库中的镜像层暂不自动回收(后续支持 GC)。
用镜像启动新实例
把镜像的 ref 作为 template_image 传给 创建实例即可:
bash
curl -X POST "$ARK_API/rentals" \
-H "Authorization: Bearer $ARK_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"node_id": "NODE_ID",
"launch_mode": "interactive",
"app": "jupyter",
"template_image": "crpi-xxx/arkcore/userimages:userimg-ab12cd34",
"gpu_count": 1
}'镜像 vs 存储卷
| 自定义镜像 | 存储卷 | |
|---|---|---|
| 保存什么 | 整个环境(系统 + 依赖 + 当时的文件) | 一块可读写磁盘上的数据 |
| 复用方式 | 作为新实例的基础镜像 | 挂载到实例 |
| 适合 | 固化"装好的环境" | 频繁变动的数据集 / 输出 |
两者可配合:用镜像固化环境,用卷存放数据集与训练产物。
