镜像为只读模板,含应用所需全部文件与配置;容器为其可运行实例,具独立运行时状态。save/load保留镜像完整层与元数据,适用于离线迁移;export/import仅导出容器文件系统快照,丢失所有镜像元数据,需手动配置才能运行。
镜像和容器是 docker 的两个基础概念:镜像(image)是只读的模板,包含运行应用所需的所有文件、依赖和配置;容器(container)是镜像的一个可运行实例,有独立的运行时状态(如进程、网络、挂载卷等)。导出导入离线镜像包,核心在于区分“保存镜像”和“导出容器”这两类操作——它们目标不同、保留内容不同、适用场景也不同。
镜像导出与导入:用 save / load 保留完整结构
这是最常用、最推荐的离线迁移方式,适用于跨主机部署、内网交付、版本归档等场景。
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
-
导出镜像:使用
docker save把本地已有的镜像(含所有层、元数据、历史记录、标签)打包成 tar 文件。
示例:docker save -o nginx-1.25.tar nginx:1.25或一次导出多个:docker save -o apps.tar redis:7 alpine:3.20 nginx:1.25 -
导入镜像:在目标机器上执行
docker load -i xxx.tar,Docker 会原样还原镜像 ID 和所有标签,导入后可直接docker run启动。 -
注意点:导出文件体积较大(含全部层),但完整性高;导入后若出现
<none>标签,说明原镜像未打标签或导出时未指定名称,建议导出前先docker tag明确标识。
容器导出与导入:用 export / import 快速快照文件系统
这种方式不面向“镜像”,而是面向“某个正在运行或已停止的容器”,适合临时备份数据、迁移运行时文件系统,但会丢失所有镜像级信息。
-
导出容器:用
docker export将容器当前的文件系统(即 rootfs)打包为 tar,不带层、无历史、无环境变量、无端口映射、无启动命令。
示例:docker export -o app-data.tar my-running-app -
导入为新镜像:用
docker import把 tar 包转成一个全新镜像,必须手动指定新名称和标签。
示例:docker import app-data.tar myapp:v2。这个镜像没有CMD或ENTRYPOINT,需额外配置才能运行。 -
关键区别:它不是“恢复容器”,而是“基于当前文件系统创建一个基础镜像”,后续仍需
Dockerfile补全运行逻辑,不能替代save/load。
实际操作中几个实用建议
- 离线传输前,建议用
gzip压缩 tar 包,例如:docker save nginx:1.25 | gzip > nginx-1.25.tar.gz,导入时用zcat nginx-1.25.tar.gz | docker load - 校验一致性:导出前记下
docker images --digests中的 digest 值,导入后再次查看,确保内容未损坏 - 跨架构注意:
save/load不解决 CPU 架构兼容问题(如 x86 镜像不能直接在 arm64 上运行),需提前构建多平台镜像或使用buildx - 不要混淆命令方向:save → load(镜像级);export → import(容器文件系统级),两者不可混用

















