首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker镜像迁移方法

Docker镜像迁移方法

作者头像
huolong
发布于 2024-12-27 01:19:40
发布于 2024-12-27 01:19:40
25800
代码可运行
举报
文章被收录于专栏:技术指北技术指北
运行总次数:0
代码可运行

背景是:我的国内服务器想获取一个docker镜像,作者并没有上传镜像到hub上,必须是在代码里自己构建的。但是由于国内服务器网络的问题,怎么都拉不下作者的项目。开始想办法。

方案1 自行构建

  1. 虽然是国内服务器,能ping通 github,但是一拉取大的项目时候,总是报错。基本是网络原因导致
  2. 然后我通过 github镜像站,通过镜像站的镜像拉取命令,成功拉取下来了作者的项目代码
  3. 然后我进入项目的目录里,准备去通过docker build xxx 去构建镜像
  4. 但是在这一步,在构建镜像的时候,也是各种拉取nginx,maven出问题。看报错也还是网络问题导致。此路不通。

于是我准备换个思路,通过一台网络顺畅的HK服务器,先将镜像拉取下来,然后再给他迁移到我的国内服务器上

方案2 镜像迁移

  1. 在HK服务器上,做的操作是一样的。拉代码,build构建,一切都很顺利,当镜像构建完后。我们通过docker images就可以看到最新构建的镜像了。
  2. 开始迁移。我们将这个镜像打包。 执行命令docker save XXXX -o /hu/XXXX.tar 其中XXX是镜像的名字,若有多个版本,你也可以在名字后面加上tag。 -o则是指定目录。 打包后的名字为 XXXX.tar。
  3. 接着我们需要将这个tar文件给复制到国内的服务器上。 在这一步,你可以选择SCP,可以选择FTP, 或者最简单的,可以通过可视化的带FTP的SSH终端来将镜像文件下载下来,再上传到国内的服务器即可。 比如:mobaxterm。 当然最简单的就是SCP命令。scp XXXX.tar root@服务器ip:/hu/ root是你要连接的对应机器用户名,@后面跟服务器ip,最后面是指定的传输路径
  4. 将tar包传过去之后,我们需要执行命令来加载镜像。执行命令docker load -i XXXX.tar 当页面按照以下内容输出后,则证明镜像加载成功。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker load -i XXXX.tar 
d47162d00c19: Loading layer  318.5MB/318.5MB
80dc1ea0fe01: Loading layer  859.1kB/859.1kB
5f70bf18a086: Loading layer  1.024kB/1.024kB
ded792b6cc33: Loading layer  3.958MB/3.958MB
2ab5754b0356: Loading layer  2.048kB/2.048kB
3a0cec27b01d: Loading layer  39.42kB/39.42kB
75c00f74b53e: Loading layer  40.45kB/40.45kB
8dc8381d4ee7: Loading layer  34.07MB/34.07MB
bbc4a41a1f58: Loading layer  1.319MB/1.319MB
891ad2b1554e: Loading layer  4.096kB/4.096kB
Loaded image: XXXX:latest

然后我们执行 docker images 就可以看到了这个镜像。接着就可以进行正常的启动容器等操作了。

至此!大功告成!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验