docker export用于将运行或已停止容器的文件系统导出为tar归档,仅含当前快照,不含镜像层、元数据、CMD/ENTRYPOINT等配置;常用语法为docker export -o output.tar CONTAINER或重定向输出。

使用 docker export 可以将一个正在运行或已停止的容器的文件系统导出为 tar 归档文件,但注意它只导出容器的当前文件系统快照(不含镜像元数据、历史层、CMD/ENTRYPOINT 等配置)。
export 命令基本用法
语法很简单:
docker export [OPTIONS] CONTAINER
最常用的是指定输出路径:
-
-o或--output:直接写入到指定文件(推荐,避免管道错误) - 不加
-o时,输出会打印到标准输出,需配合重定向(如>),但容易因编码或权限问题失败
导出容器为 tar 文件的操作步骤
假设有一个容器 ID 是 a1b2c3d4e5f6,想导出为 myapp-export.tar:
- 确认容器状态:可以是
running或exited,不能是created或paused(暂停态需先解停) - 执行命令:
docker export -o myapp-export.tar a1b2c3d4e5f6 - 检查结果:
ls -lh myapp-export.tar,正常应生成几百 KB 到几 GB 的 tar 文件,取决于容器内文件大小
export 和 save 的区别要分清
很多人混淆 export 和 save,关键差异如下:
-
docker export针对「容器」,导出的是容器运行时的扁平化文件系统(类似tar -cf),不保留镜像层级、构建历史、启动命令等 -
docker save针对「镜像」,导出的是完整镜像(含所有 layer、metadata、manifest),可用docker load恢复为镜像 - export 导出的 tar 无法直接
docker load;如需重建镜像,得用cat myapp-export.tar | docker import - myimage:tag
导入导出的 tar 文件(可选后续操作)
如果想把 export 出来的 tar 转成新镜像:
- 执行:
docker import myapp-export.tar myapp:v1 - 注意:
import不继承原容器的 CMD/EXPOSE 等配置,新镜像默认没有启动命令,需在运行时指定或后续docker commit补充 - 验证:
docker images | grep myapp应能看到刚导入的镜像


















