Skip to content

导入或跨可用区迁移镜像

使用镜像中心「上传镜像」功能,可以将本地已有镜像或远程镜像 URL 导入目标可用区的租户私有镜像仓库,也可以将一个可用区中已有的镜像迁移到另一个可用区。

警告

从平台外部推送镜像,或从一个可用区向另一个可用区迁移镜像,都需要使用目标可用区 Registry 公网访问地址。实际推送速度受网络带宽影响。

前提条件

租户镜像仓库:如需获得租户私有镜像仓库,满足以下任一条件即可:

  • 已购买预付费资源(包年包月资源)
  • 曾使用弹性资源创建开发机,且仓库未被收回

使用地址前请先阅读镜像仓库地址与可用区,确认命令运行位置、目标可用区和登录凭证范围。

适用场景

根据您的镜像来源与网络环境,请选择最适合的上传方式:

  • URL 导入:您拥有一个公网可直接下载的镜像链接(HTTP/HTTPS 直链),支持验证登录凭证。镜像必须为公网可访问的外部资源,且未被防火墙或网络策略阻断。
  • 本地推送 (docker push):您的本地设备上存有镜像,需要通过公网迁入指定可用区的镜像仓库。例如,您的本地设备为个人笔记本、或公司内部服务器,存有通过 Dockerfile 构建的镜像,或通过其他方式拉取的 Docker Hub 的镜像。
  • 跨可用区迁移:镜像已存在于可用区 A,需要在可用区 B 中使用。请在镜像中心选择目标可用区 B,获取其 Registry 公网访问地址和登录凭证,再从能够读取源镜像的实例或设备推送到可用区 B。

    信息

    如果平台实例与目标镜像仓库不在同一可用区,也必须使用目标可用区 Registry 公网访问地址推送。平台内部 Registry 域名只能连接到发起请求的实例所在可用区。

如果平台无法访问 Docker Hub,但本地设备能够访问且未安装 Docker 客户端或 Docker Engine,可以使用第三方命令行工具 crane,将 Docker Hub 中指定架构的镜像直接复制到目标可用区 Registry。crane 也可用于检查远程镜像、批量复制 tag,或在迁移后自动比较摘要。

通过 URL 导入公网镜像

对于存放在用户自建镜像仓库或第三方镜像仓库的远程镜像,只需填写相关 URL 和凭证信息即可。

警告

无论是自建镜像仓库 URL 或第三方镜像仓库 URL,请确保可从国内公网访问。如有登录认证,请提供正确的访问凭证。

由于运营商网络原因,无法从 Docker Hub(docker.io)导入镜像。这包括未指定 Registry 前缀的镜像 URL(默认使用 docker.io)和显式指定 docker.ioregistry-1.docker.io 的 URL。如需导入 Docker Hub 镜像,请选用其他方式导入。

  1. 在 AIStudio 的镜像中心,选择上传镜像,打开上传镜像弹窗。

  2. 在「选择资源池」的下拉列表中,选择一条记录后,表示镜像将上传到该可用区。如果使用该可用区的任何资源池创建开发机、任务、推理服务,均可使用该镜像。

    信息

    如果「选择资源池」的下拉列表有多行记录,每一行为一个可用区的所有资源池。选择一条记录后,表示镜像将上传到该可用区,单次仅能选择一个可用区。

  3. 选择 URL 上传,并填写镜像 URL。如需认证,务必填写凭证信息。

通过命令行推送镜像

对于存放在本地设备上的镜像,或需要从其他可用区迁移的镜像,需要获取目标可用区 Registry 的公网访问地址和登录凭证,并将镜像推送到目标命名空间(Namespace,使用租户 ID 作为命名空间)。

提示

cr.infini-ai.com 不是公网访问入口。在平台外部,不保证可以解析或连接。要从本地设备访问平台 Registry,或从一个可用区向另一个可用区推送镜像,请在镜像中心选择目标可用区,并使用页面提供的目标可用区 Registry 公网访问地址和登录凭证。

  1. 在 AIStudio 的镜像中心,选择「上传镜像」。

  2. 选择资源池的下拉列表中,每一行记录为一个可用区的所有资源池。选择一条记录后,表示镜像将上传到该可用区,如果使用该可用区的任何资源池创建开发机、任务、推理服务,均可使用该镜像。

  3. 选择命令行上传,页面会显示目标可用区租户私有镜像仓库的 Registry 公网访问地址、登录凭证和完整命令。请复制当前页面显示的实际值,不要自行将平台内部 Registry 域名替换到这些命令中。流程如下:

    1. 获取目标可用区 Registry 的公网访问地址和登录凭证。
    2. 在执行迁移的设备或实例上,查看待推送镜像 (docker images)。
    3. 登录目标可用区的公网 Registry (docker login)。
    4. 按镜像中心提供的目标地址为镜像打标签(docker tag)。
    5. 使用标准 Docker 命令推送至目标可用区 (docker push)。

    警告

    选择可用区后再复制命令。不同可用区的公网 Registry 地址和凭证不同;登录可用区 A 的 Registry 不表示可以向可用区 B 推送。

关于容器镜像 Tar 包的说明

容器镜像 Tar 包本质上是一个被打包成标准 .tar 归档格式的容器镜像。一般情况下,推荐您通过 URL 或命令行(docker push)方式上传即可,不建议使用容器镜像 Tar 包。

使用容器镜像 .tar 备份文件的场景:

  • 无法访问平台租户私有镜像仓库所属 Registry 的公网地址。
  • 您手头只有一份历史遗留的 .tar 备份文件,希望导入为平台自定义镜像,且本地未安装 Docker 服务。
  • 不经过任何镜像仓库,在两台机器之间 快速迁移镜像
  • 将本地构建的镜像 离线备份或归档,确保版本可追溯、可恢复。

镜像中心不支持直接上传容器镜像 Tar 包。如需使用容器镜像 .tar 备份文件,需要借助一台启用 Docker 容器功能的开发机,才能将容器镜像 Tar 包导入为镜像,并推送至平台租户私有镜像仓库。详见导入镜像 Tar 包

为导入的镜像安装开发机基础组件

AIStudio 开发机依赖 sudorunit 等基础组件,如果您的自定义镜像中缺乏必要依赖,可能无法用于运行开发机。详见开发机镜像基础组件要求

如果镜像中缺失上述组件,在启动开发机时平台会尝试安装,但仍可能安装失败导致开发机无法正常启动,或 SSH 远程连接功能受限。建议您在导入之前处理镜像,确保镜像满足平台要求。如果导入的镜像已缺失组件,以下为推荐的修复方案:

  • 为开发机作一次性修复:如果仅针对开发机作一次性修复,可直接登录开发机,安装基础组件,重启开发机。缺点是仅针对当前开发机有效。
  • 永久修复镜像(推荐):在镜像中心,基于已有镜像,通过安装组件,构建新的镜像。操作方式如下:
    1. 在镜像中心构建自定义镜像,选择「基于现有镜像」中安装

    2. 在「安装命令」中输入以下安装命令:

      • 基于 Debian Bookworm 的自定义镜像,必须安装以下组件:

        language-shell
        apt-get update && apt-get install openssh-server sudo runit runit-systemd -y
      • 基于 Ubuntu 22.04 的自定义镜像,必须安装以下组件:

        language-shell
        apt-get update && apt-get install openssh-server sudo runit runit-systemd -y
      • 基于 Ubuntu 24.04 的自定义镜像,必须安装以下组件:

        language-shell
        apt-get update && apt-get install openssh-server sudo runit runit-helper runit-run -y
    3. 等待新版镜像构建完成。