作者:手机用户2502902033 | 来源:互联网 | 2023-06-06 02:04
目录
一、简介
二、 压缩镜像为tar包
三、 重新载入tar包生成镜像
四、总结
一、简介
实际项目中,有时候可能会遇到需要批量备份已经存在的镜像,又或者说项目地服务器暂时无法拉取镜像等等原因,这时候我们就可以将公司镜像仓库中的镜像在本地打成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包之前是一样的。
四、总结
以上就是线下备份镜像或者打包镜像到项目地重新加载镜像的方法,在某个特殊场景下还是用处挺大的,希望对大家有所帮助。