Docker备份镜像和重新载入镜像

一、简介

实际项目中,有时候可能会遇到需要批量备份已经存在的镜像,又或者说项目地服务器暂时无法拉取镜像等等原因,这时候我们就可以将公司镜像仓库中的镜像在本地打成tar压缩包,然后通过xftp传输到项目地服务器中,然后再项目地中重新加载这些镜像即可。本文将总结如何批量打包Docker镜像并且重新载入镜像,主要包含两个步骤:

  • 压缩镜像为tar包;
  • 重新载入tar包生成镜像;

这里以nginx镜像为例,详细的操作步骤请见下面。

二、 压缩镜像为tar包

【a】 从镜像仓库中拉取nginx镜像到用来打tar包的服务器

docker pull 192.168.2.78:5000/library/nginx:latest

【b】查询镜像的imageID

docker images | grep 192.168.2.78:5000/library/nginx

 可见镜像ID为:5fa3fabcd585,这个后面要用到。

【c】 保存镜像到tar包 

docker save 5fa3fabcd585 -o /opt/ly-sm-nginx-latest.tar

注意:5fa3fabcd585表示是上面一步查询出来的imageID。

打包成功我们查看opt目录已经有ly-sm-nginx-latest.tar压缩包:

 ll /opt/ | grep ly-sm-nginx-latest.tar

三、 重新载入tar包生成镜像

【a】将tar包传输到项目地的服务器中的某个目录下

这里放到/opt目录下为例:

【b】使用docker load重新加载镜像

docker load -i /opt/ly-sm-nginx-latest.tar

【c】重新打镜像标签

docker tag sha256:5fa3fabcd58525bcec53e0f38e855134d2e25f88cd28ae1d7f874a3d21cfe5a0 192.168.35.128:5000/develop/ly-sm-nginx:latest

【d】查看是否成功载入镜像

docker images | grep nginx

 

可以发现,成功将镜像重新加载到新的服务器中,这时候就可以使用docker push推送到项目地镜像仓库中升级即可,同时我们也看到重新载入的镜像ID跟压缩成tar包之前是一样的。

四、总结

以上就是线下备份镜像或者打包镜像到项目地重新加载镜像的方法,在某个特殊场景下还是用处挺大的。

发布了250 篇原创文章 · 获赞 112 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/Weixiaohuai/article/details/105222643