使用docker save和docker load可离线导出导入镜像:save将镜像打包为tar(支持单/多镜像、可管道压缩),load从tar恢复镜像,完整保留层结构、标签、元数据;务必避免export/import(仅导出容器快照,丢失构建历史与配置)。

导出镜像:用 save 打包成 tar 文件
在能联网的机器(比如开发机或跳板机)上执行:
- 导出单个镜像(务必带明确标签,避免导入后丢失):
docker save -o nginx-1.25.tar nginx:1.25 - 一次导出多个镜像(适合整套服务):
docker save -o app-stack.tar nginx:1.25 redis:7.2 python:3.11-slim - 边打包边压缩(节省传输体积,目标机无需解压):
docker save nginx:1.25 | gzip > nginx-1.25.tar.gz
注意:别用 docker export——那是导出容器文件系统,会丢掉镜像层、构建历史、环境变量等关键信息。
传输文件:离线拷贝到内网机器
tar 文件是普通二进制文件,怎么安全传过去都行:
- 局域网内可用 scp:
scp nginx-1.25.tar user@192.168.10.100:/tmp/ - U 盘、移动硬盘手动拷贝
- 通过内网 FTP、NFS 或 Samba 共享目录上传下载
传输前确认目标机器磁盘空间够用:tar 文件大小 ≈ 镜像实际占用空间,加载时还需额外临时空间。
导入镜像:用 load 恢复到本地镜像库
在目标内网机器上执行:
- 加载普通 tar:
docker load -i nginx-1.25.tar - 加载 gzip 压缩包(不用先解压):
zcat nginx-1.25.tar.gz | docker load - 验证是否成功:
docker images | grep nginx——应显示原标签、ID 和创建时间
导入后镜像可直接运行:docker run -d -p 80:80 nginx:1.25,所有层结构、元数据、多标签全部保留。
特别提醒:架构与标签要对得上
如果源机和目标机架构不同(比如 M 系列 Mac 导出给 x86_64 服务器用),拉取时就得指定平台:
- docker pull --platform linux/amd64 nginx:1.25
- 再执行 save,否则可能因架构不匹配导致容器启动失败
导入后若需改名或推送到内网 registry,可用 docker tag 和 docker push 补充操作。


















