docker save与docker export的区别
总结一下docker save和docker export的区别:
- docker save保存的是镜像(image),docker export保存的是容器(container);
- docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
- docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
从上面可以看出右边的postgres-export.tar
的内容是一个linux系统的文件目录,猜测就是一个linux镜像。而postgres-save.tar
里面到底是什么内容呢?点开一个文件夹看看:
其实就是一个分层的文件系统。Docker镜像实际上就是由这样的一层层文件进行叠加起来的,上层的文件会覆盖下层的同名文件。如果将postgres-save.tar
中的各层文件合并到一起,基本就是postgres-export.tar
的内容。由于postgres-save.tar
里面的各层文件会存在很多重复的文件,这也解释了为什么postgres-save.tar
会比postgres-export.tar
大100多M。
docker load必须要载入的是一个分层文件系统,而postgres-export.tar
并不具有这样的结构,因此无法载入。
而docker import仅仅是将tar包里面的文件复制进来,所以不管tar包里面的文件结构是怎样的,都可以载入进来,所以能够载入postgres-save.tar
。但postgres-save.tar
并不是一个有效的操作系统镜像,因此当我试图以改镜像启动容器时,容器并不能启动。
摘自:https://blog.csdn.net/liukuan73/article/details/78089138
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)