镜像迁移应选save/load,容器迁移应选export/import;save/load保留完整层结构、历史记录和元数据,export/import仅导出扁平文件系统快照且丢失所有配置。
docker 镜像与容器的快速迁移,核心在于分清“镜像”和“容器”的本质差异,并选用对应的操作方式——镜像用 save/load,容器用 export/import,不能混用。
镜像迁移:用 docker save 和 docker load(推荐首选)
镜像是静态模板,含完整层结构、元数据、历史记录。迁移它,等于把整个“安装包”打包带走。
-
导出镜像为文件
docker save -o nginx-backup.tar nginx:latest
支持多镜像一次性导出:
docker save -o multi.tar nginx:latest redis:alpine mysql:8.0
-
导入镜像到目标环境
docker load -i nginx-backup.tar
导入后标签、ID、所有层全部还原,可直接
docker run启动。
✅ 优势:保留构建历史、多层缓存、所有元数据;适合版本备份、离线部署、跨主机迁移。
容器迁移:用 docker export 和 docker import
容器是运行实例,导出的是其当前文件系统快照,不包含启动命令、环境变量、端口映射等配置。
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
-
导出运行中或已停止的容器
docker export -o app-snapshot.tar my-web-container
-
导入为新镜像(注意:不是直接恢复容器)
docker import app-snapshot.tar my-web:v2 docker run -d --name new-web -p 8080:80 my-web:v2
⚠️ 注意:需手动重新指定
-p、-e、--volumes-from等参数,原容器配置不会自动恢复。
✅ 适用场景:快速复制数据目录、临时调试快照、轻量级文件系统迁移。
迁移前关键检查项
- 确认源/目标 Docker 版本兼容(建议 ≥ 20.10)
- 检查镜像架构是否一致(如
linux/amd64vslinux/arm64),避免导入后无法运行 - 若含数据卷,单独处理:
docker cp复制内容,或提前docker volume inspect+ 打包/var/lib/docker/volumes/ - 建议导出时加压缩(如
gzip)减少体积:docker save nginx:latest | gzip > nginx.tar.gz zcat nginx.tar.gz | docker load
小技巧:一键迁移带配置的容器
若想连配置一起迁移,更稳妥的做法是:
- 先
docker commit当前容器为新镜像(保留运行时状态) - 再
docker save这个新镜像 - 目标机
docker load后,用docker run并补全原始参数(可通过docker inspect查看原配置)
这样比 export/import 更接近“原样迁移”。
不复杂但容易忽略。










