迁移外部镜像至租户镜像仓库
本文描述如何借助启用「Docker 容器」功能的开发机,将用户已有镜像迁移到智算云平台的镜像中心。
迁移的主要流程:
- 创建启用「Docker 容器」功能的开发机。
- 在开发机上准备用户镜像,可上传镜像文件开发机,或从指定的外部镜像仓库拉取到开发机。
- 推送到租户镜像仓库。
前提条件
- 租户镜像仓库:租户购买预付费资源(包两年/包年/包月/包日)后,可获得私有的租户镜像仓库。
- 开发机依赖
sudo
、ssh
等基础组件,如果您的自定义镜像中缺乏必要依赖,可能无法用于运行开发机。
Step 0 创建开发机
创建开发机,并打开「Docker 容器」功能。
如需帮助,参见 Docker 功能。
Step 1 准备待迁移镜像
如果已有镜像 tar 包,可考虑以下步骤本地传输镜像文件至在开发机或共享存储中:
也可考虑直接从外部镜像仓库拉取到开发机,要求外部镜像仓库支持公网访问。
Step 2 推送至租户镜像仓库
登录打开了 Docker 容器功能的开发机(开发机会默认登录您租户的镜像仓库),按照以下步骤操作:
如果要将 Docker 镜像 tar 包推送到镜像仓库,需要先加载镜像。使用
docker load
命令加载镜像:bashdocker load -i <image_name>.tar
标记镜像: 镜像需要标记仓库路径(查看镜像仓库地址)和标签,请使用
docker tag
:格式:
bashdocker tag <loaded_image_name>:<version> <repository>/<image_name>:<version>
示例:
bashdocker tag sd-webui:v1.1-1 cr.infini-ai.com/te-d397fngp1xye2h3q/sd-webui:v1.1-1
推送镜像: 使用
docker push
将镜像推送到仓库:格式:
bash# 开发机内默认登录租户镜像,无需再次 docker login docker push <repository>/<image_name>:<version>
示例:
bashdocker push cr.infini-ai.com/te-d397fngp1xye2h3q/sd-webui:v1.1-1
Step 3 查看结果
构建完成后,您可以访问镜像中心,在自定义镜像标签页中查看您的镜像。
NOTE
如果您所属租户在不同可用区均购买了资源,请注意租户在不同可用区的镜像仓库的存储网络相互隔离,暂不支持同步(但共用同一个内网地址)。例如,可用区 A 向 cr.infini-ai.com/te-b914754427352251
推送镜像,平台自动映射到可用区 A 的镜像仓库,可用区 B 无法使用该镜像。