1 缘起:为什么需要镜像导出?
在云原生时代,Docker已经成为应用部署的标准工具。然而在实际工作中,我们经常会遇到这样的场景:生产环境无法连接外网,需要将镜像离线部署;或者需要备份特定版本的镜像作为灾备;又或者需要与团队共享镜像而不依赖 registry。
这时候,镜像导出功能就显得尤为重要。它就像为你的应用准备一个便携式行李箱,无论走到哪里,都能快速安家落户。
记得有一次,笔者在客户现场进行部署,却发现他们的服务器完全隔离于外网。幸好提前通过docker save命令将所需镜像打包,才避免了项目延迟。这种"有备无患"的智慧,在容器化部署中同样适用。
2 深度解析:save vs export 究竟有何不同?
很多Docker初学者容易混淆docker save和docker export两个命令,但它们的设计目的和实现机制有着本质区别。
2.1 docker save:完整镜像档案馆
docker save用于将一个或多个镜像保存到tar文件。这个文件包含了镜像的完整历史记录、元数据和所有层。想象它是一个完整的集装箱,里面整整齐齐地装着所有货物及其清单。
# 语法格式
docker save [选项] 镜像 [镜像...] -o 输出文件
# 实际示例
docker save -o myapp_backup.tar myapp:1.0 nginx:latest
2.2 docker export:容器快照照相机
相比之下,docker export则将容器的文件系统当前状态导出为tar文件。它不包含历史信息、元数据或层信息,就像给容器拍了一张即时照片。
# 语法格式
docker export [选项] 容器 -o 输出文件
# 实际示例
docker export -o container_snapshot.tar my_running_container
2.3 对比表格:选择正确的工具
| 特性 |
docker save |
docker export |
| 操作对象 |
镜像(一个或多个) |
容器(单个) |

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



