Docker镜像导出导入save与load命令用法 Docker
前言
离线环境或内网服务器无法拉取公共镜像,需要把一台机器上的镜像导出成压缩包,拷贝到另一台机器导入。docker save 和 docker load 负责镜像的迁移,区别于容器的导出。本文讲解 save 导出、load 导入、压缩体积、查看镜像、与容器导出的区别。
操作步骤
1. 查看本地镜像
docker images
2. 导出镜像为 tar
docker save nginx:1.28 -o nginx.tar
3. 压缩导出节省体积
docker save nginx:1.28 | gzip > nginx.tar.gz
4. 在目标机器导入
docker load -i nginx.tar
压缩包先解压:
gunzip nginx.tar.gz && docker load -i nginx.tar
或直接:
docker load < nginx.tar.gz
5. 验证导入成功
docker images
6. 多镜像一次性导出
docker save img1:tag img2:tag -o all.tar
常见坑
- save 导出的是镜像层,export 导出的是容器文件系统,两者不能混用。
- 不压缩 tar 体积大,跨网传输慢,用 gzip。
- 导入后 tag 丢失或名称不符,需要重新打 tag。
- 目标机器架构不同(amd64/arm),镜像无法运行。
- 镜像层很多,导出文件仍较大,注意磁盘。
- 版本 tag 写错,导入到旧版本。
- 私有仓库更适合规模化分发,save/load 用于离线迁移。
总结
save 打包镜像层、load 还原镜像,配合 gzip 压缩适合离线迁移。注意区分镜像 save/load 与容器 export/import,跨架构先确认 CPU 类型。迁移后 docker images 核对 tag,必要时重新打标签。
遇到问题加QQ23979811 协助处理