相关资料如下,其他同学的总结已经十分到位,我就不复制粘贴了,十分感谢~~
https://jingsam.github.io/2017/08/26/docker-save-and-docker-export.html
https://blog.csdn.net/weixin_36343850/article/details/80553680
export & import
export:将容器导出为tar包,生成的是该容器的快照,复刻的是容器当前的linux系统环境
import:将tar包导入为镜像,即容器→tar包→镜像
save & load
save:将镜像导出为tar包,该命令也可以作用于容器,但导出的是容器背后的images。save导出的是分层文件系统,每一层文件系统有很多重复的数据,重复数据会覆盖,各层文件叠加起来就就成了镜像。
load:将tar包导出为镜像,即镜像(容器)→tar包→镜像
差异
save命令生成的tar包比export命令生成的tar包大很多
两组命令不可交叉互用
使用commit生成新镜像,保存docker上的gitlab数据
说到这里,必须关联一下docker数据持久化,很多人都说可以用commit命令,将当前的容器提交为新的镜像保存数据。但我将载有gitlab的容器(有本地挂载OR无本地挂载,run -v)使用commit命令,提交为新的镜像,镜像大小和普通的gitlab镜像无异,而该gitlab的备份数据可达4G,就是说没有将gitlab数据存在镜像中啊!!!
估计使用commit提交新镜像的办法对gitlab数据备份不适用???暂解决
使用export将容器导出为tar包,再import为镜像
虽然网上的教程都说export&import不能用于数据持久化,还是想试试哈哈(最后还是木有数据)。最后import为镜像,输入run命令后的时候,报错
docker: Error response from daemon: No command specified.
百度后解决了问题,感谢:https://blog.csdn.net/clj198606061111/article/details/50450793#
原来run命令后要跟COMMAND,具体的command要查询原导出的容器
网友评论