使用镜像 Tar 包导入镜像
将本地的容器镜像 Tar 包文件上传到 AIStudio 平台上的开发机,通过标准的 Docker 命令导入为镜像。
这种方式一般用于将用户的容器镜像 Tar 包导入为镜像中心的自定义镜像。主要流程:
- 确定需要导入镜像目标可用区后。
- 使用目标可用区的算力资源创建开发机,并启用「Docker 容器」功能。
- 上传容器镜像 tar 文件至开发机,通过
docker load导入为镜像。 - 根据平台规范,执行
docker tag添加镜像标签。 - 推送到同可用区租户镜像仓库(
docker push必须使用内网专用地址,不经过公网,速度较快)。
环境要求
要求开发机已启用「Docker 容器」功能。
强烈推荐先安装
buildx,因为它基于更先进的 BuildKit 引擎,能提供更快的构建速度、更强大的功能以及旧版构建器所不支持的多平台镜像构建能力。详见 Buildkit。shellmkdir -p /usr/local/lib/docker/cli-plugins && curl -sSL https://ghfast.top/https://github.com/docker/buildx/releases/download/v0.29.1/buildx-v0.29.1.linux-amd64 -o /usr/local/lib/docker/cli-plugins/docker-buildx chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
导入镜像 Tar 包
创建开发机,并打开「Docker 容器」功能。
将镜像 Tar 包传输到开发机或共享存储中。如果文件较大,且您已购买共享文件存储,建议使用基于 AICoder 的传输方案,避免占用 GPU 卡时。
在开发机中,使用
docker load命令加载镜像:shell# 示例:加载 /tmp 目录下的 cuda-12.9-latest.tar docker load -i /tmp/cuda-12.9-latest.tar部分常见问题:
- 文件未找到:请检查 tar 文件路径是否正确,使用
ls -lh /tmp/*.tar确认文件存在。 - 磁盘空间不足:加载大镜像需要足够的磁盘空间。使用
df -h检查/var/lib/docker所在分区的剩余空间。
- 文件未找到:请检查 tar 文件路径是否正确,使用
加载完成后,使用
docker images查看镜像列表,确认镜像已存在:bashdocker images | grep cuda预期输出示例:
textREPOSITORY TAG IMAGE ID CREATED SIZE cuda-12.9 latest a1b2c3d4e5f6 2 days ago 1.5GB
推送镜像至租户镜像仓库
在开发机中推送镜像至同可用区镜像服务(即内网推送),一般无需手动执行 docker login。
在开启 「Docker 容器」功能的开发机中,检查是否已存在平台镜像 Registry 登录凭证。
shellcat /tmp/docker-config/config.json获取租户镜像服务命令空间(租户镜像仓库根路径)。
shell# 提取并定义租户镜像仓库根路径 (Registry + Project) export INTRANET_REPO_ROOT="cr.infini-ai.com/$(grep -o 'robot\$[^"+]*' /tmp/docker-config/config.json | cut -d'$' -f2)" && echo $INTRANET_REPO_ROOT示例输出:
shell# 租户 ID 为 te-b905754427352261 的私有镜像仓库根路径 cr.infini-ai.com/te-b905754427352261提示
您可以在 镜像仓库说明 中查看租户私有仓库的地址规则。
为镜像添加租户私有仓库路径和标签。
bash# 已通过前述步骤获取私有镜像仓库根路径 INTRANET_REPO_ROOT docker tag cuda-12.9 $INTRANET_REPO_ROOT/cuda-12.9执行
docker push。shelldocker push $INTRANET_REPO_ROOT/cuda-12.9常见问题:
- 需要登录:请前往开发机详情页,检查是否已开启「Docker 容器」功能;如未开启,可通过「改配」开启。
- 权限拒绝 (Denied):如果凭证丢失,请尝试直接执行
docker login(通常开发机自动配置,无需手动)。
推送完成后,您可以检查命令输出,确保所有层都显示
Pushed。还可以访问镜像中心,在自定义镜像标签页中查看您的镜像。
注意
跨可用区推送镜像
- 上述步骤仅限于推送镜像至同可用区镜像服务(即内网推送),不适用于跨可用区推送镜像。推送成功的镜像仅供同一可用区的平台服务使用。
- 租户在不同可用区的镜像服务存储网络相互隔离,暂不支持同步。
- 如果需要从可用区 A 的开发机推送镜像至可用区 B 镜像服务,需要获取可用区 B 镜像服务的公网访问地址与登录凭证,经过公网推送镜像,实际推送速度受网络带宽影响。详见通过命令行上传公网镜像。