docker save 和 docker load 用于本地镜像完整迁移:save 将镜像打包为 .tar(支持按名、id 或多镜像导出),load 从 .tar 导入(推荐 -i 参数,支持重定向或管道解压),导入后需验证功能。

导出和导入本地容器镜像,核心是用 docker save 和 docker load 这一对命令。它们操作的是镜像本身(含所有层、元数据、历史记录),适合完整迁移、离线部署或备份。
导出镜像为本地文件
使用 docker save 把镜像打包成 .tar 文件,推荐带 -o 参数指定输出路径:
- 按镜像名+标签导出(可读性强):
docker save -o nginx.tar nginx:latest - 按镜像 ID 导出(适用于无标签镜像):
docker save -o myapp.tar abc123456789 - 一次导出多个镜像:
docker save -o multi.tar nginx:alpine redis:7-alpine busybox
生成的 .tar 文件包含完整的镜像结构,可直接拷贝到其他机器。
导入镜像到本地环境
在目标机器上运行 docker load,从 .tar 文件还原镜像:
- 标准写法(推荐):
docker load -i nginx.tar - 也可用重定向方式:
docker load
导入后,镜像自动出现在 docker images 列表中,标签、ID、创建时间等信息均保留,可立即用于 docker run。
常见注意事项
避免踩坑的关键点:
- 别混用 save/load 和 export/import:前者针对镜像,后者针对容器;混用会导致元数据丢失,启动失败
-
导出前确认镜像存在:先执行
docker images查看准确的镜像名、TAG 或 ID -
大镜像建议分卷或压缩:如用
gzip压缩 tar 包节省传输体积:docker save nginx:latest | gzip > nginx.tar.gz,导入时需解压或管道处理:zcat nginx.tar.gz | docker load -
离线环境务必验证:导入后运行
docker run --rm nginx:latest nginx -v确认基础功能正常











