导出镜像
您可以从 AIStudio 开发机中保存离线镜像文件,并下载至本地机器中。可以在不访问 Docker 仓库(registry)的情况下,实现镜像的离线移植和备份。传输至其他机器后,使用 docker load 命令加载该镜像。
主要用例包括:
- 物理隔离环境 在没有网络连接的安全环境中手动迁移镜像。
- 简单的备份与归档:将镜像保存为单个
.tar文件,便于在文件系统或存储服务中进行独立备份。 - 临时的点对点传输:无需借助公共或私有镜像仓库,可通过
ssh等方式在两台机器间快速直接地传递镜像。
导出镜像并传输至其他开发机
在 AIStudio 平台的开发机之间传输镜像时,使用镜像离线 tar 文件可作为替代租户镜像仓库的一种备选方案。
注意
这种方式仅在开发机之间传输镜像。在租户镜像仓库可用时,建议优先使用租户镜像仓库。
以下介绍通过 docker save 导出镜像离线 .tar 文件,传输至同可用区另一台开发机的步骤:
在开发机上检查本地镜像,当前开发机上已存在本地构建的
cuda-12.9:latest镜像。shellroot@is-db2g2ndlc7dyv2ho-devmachine-0:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE cuda-12.9 latest ce071c4b4884 2 days ago 14.9GB通过
docker save命令可以将 Docker 镜像保存为/tmp/cuda-12.9-latest.tar文件(开发机的/tmp目录会在重启后自动清理,不占用额外空间)。shell# 将 cuda-12.9:latest 镜像保存为 cuda-12.9-latest.tar # 命令成功后无输出 root@is-db2g2ndlc7dyv2ho-devmachine-0:~# docker save -o /tmp/cuda-12.9-latest.tar cuda-12.9:latest检查
/tmp/cuda-12.9-latest.tar文件是否存在。shellroot@is-db2g2ndlc7dyv2ho-devmachine-0:~# ls -alht /tmp/cuda-12.9-latest.tar -rw------- 1 root root 14G Nov 10 11:09 /tmp/cuda-12.9-latest.tar由于需要通过 scp 传输镜像 tar 文件,因此必须获取目标开发机的 SSH 登录凭证。该步骤不可跳过。您有以下几个选项:
- 推荐:请问目标开发机详情页,确保目标开发机已开启基于密码认证 SSH 服务,并复制和记录 SSH 登录密码。如果未开启,请改配开发机,开启 SSH 服务的密码认证,等待开发机重启并再次进入运行中状态。
- 备选:如果熟悉 SSH 密钥对生成和配置流程,可以在当前开发机生成公私对,在目标开发机上写入 SSH 公钥。
登录同可用区另一台开发机,执行
hostname -i命令获取临时内网 IP。shellroot@is-db3innzjy6ytobaz-devmachine-0:~# hostname -i 172.27.36.105注意
- 同可用区内网传输速度较快,可通过获取临时内网 IP 实现开发机之间快速传输。开发机重启后内网 IP 可能会变化,需重新获取。
- 不同可用区之间不支持内网传输,请前往目标可用区开发机的详情页,获取 SSH IP 和端口号进行传输。
执行
scp命令将/tmp/cuda-12.9-latest.tar文件传输至目标开发机。shell# 从当前开发机传输至目标开发机的 /tmp 目录 # -vv 实现 verbose 模式,显示详细传输信息 scp -vv /tmp/cuda-12.9-latest.tar root@172.27.36.105:/tmp/登录目标开发机,检查
/tmp/cuda-12.9-latest.tar文件是否存在。shellroot@is-db3innzjy6ytobaz-devmachine-0:~# ls -alht /tmp total 14G -rw------- 1 root root 14G Nov 10 11:20 cuda-12.9-latest.tar确认镜像 tar 文件传输成功,执行
docker load命令加载镜像。shell# 从 /tmp 目录加载 cuda-12.9-latest.tar 文件 root@is-db3innzjy6ytobaz-devmachine-0:~# docker load -i /tmp/cuda-12.9-latest.tar b706c187b212: Loading layer [==================================================>] 80.41MB/80.41MB c3ceff516656: Loading layer [==================================================>] 2.655GB/2.655GB 1e830f953129: Loading layer [==================================================>] 8.686MB/8.686MB f264ce502d31: Loading layer [==================================================>] 6.144kB/6.144kB 8f05333dea9c: Loading layer [==================================================>] 10.05GB/10.05GB 64e9471211ad: Loading layer [==================================================>] 2.148GB/2.148GB Loaded image: cuda-12.9:latest以上输出表示镜像已经成功加载。
导出镜像并下载至本地机器
如果希望将 AIStudio 开发机上下载、构建的镜像传输到本地机器,只需要将 docker save 导出的镜像离线 .tar 文件下载到本地,再通过 docker load 加载镜像。
导出镜像离线
.tar文件的步骤与导出镜像并传输至其他开发机相同。前往当前开发机的详情页,获取 SSH 登录凭证,包括 IP 和 端口号。
注意
本步骤假设您本地机器已经可以成功 SSH 远程登录开发机。如果未配置,详见 开发机 SSH 远程登录。
在本地机器,使用
scp命令,指定开发机 SSH IP 和端口号,将镜像 tar 文件从开发机传输到本地。shell# 从开发机传输至本地 /tmp 目录 # -vv 实现 verbose 模式,显示详细传输信息 scp -vv -P 41294 root@199.115.57.194:/tmp/cuda-12.9-latest.tar /tmp/如果不熟悉 scp 使用,可参考 上传与下载文件。
在本地机器,使用
docker load命令加载镜像,具体方法与导出镜像并传输至其他开发机相同。注意
- 请注意镜像平台差异,开发机构建的镜像可能为
linux/amd64或linux/arm64等不同平台。在加载镜像时,需要确保本地机器的 Docker 引擎支持该平台。 - 如果在开发机内构建镜像,建议安装 Docker Buildx 插件。
- 请注意镜像平台差异,开发机构建的镜像可能为