docker export 是将容器文件系统导出为 tar 归档的命令,仅包含容器层修改内容,不含镜像层、元数据、配置及挂载卷,不可用 docker load 加载,适用于文件迁移或构建新镜像。
docker export 是将正在运行(或已停止)的容器的文件系统导出为 tar 归档文件的命令,它只打包容器最上层的读写层(即容器层),不包含镜像的只读层、元数据、历史记录或网络/存储配置。
基本用法:导出容器为 tar 文件
执行以下命令即可将指定容器导出为本地 tar 包:
- 语法:docker export [OPTIONS] CONTAINER > archive.tar
- 示例:docker export my-nginx > nginx-fs.tar
- 也可用 -o 选项直接写入文件:docker export -o nginx-fs.tar my-nginx
注意事项:它不是镜像备份
导出结果是纯文件系统快照,不含以下内容:
- 镜像分层结构(只保留容器运行时修改的文件)
- 容器启动命令(CMD/ENTRYPOINT)、环境变量、端口映射等配置
- 已挂载的卷(volumes)和绑定挂载(bind mounts)内容不会被包含
- 无法用 docker load 加载,只能解压查看或用于迁移基础文件
后续操作建议
导出后如需复用,常见做法有:
- 解压查看:tar -xf nginx-fs.tar -C ./nginx-root
- 基于归档构建新镜像:用 Dockerfile 的 COPY 或 ADD 引入该 tar 内容
- 配合 docker import 创建新镜像(但会丢失所有元信息,仅保留文件系统):docker import nginx-fs.tar my-custom:latest
替代方案对比
若目标是完整持久化容器状态,更推荐:
- docker commit CONTAINER new-image → 生成可复用的新镜像(含配置和历史)
- 对重要数据,单独备份 docker volume 或宿主机挂载目录
- 使用 docker save + docker load 备份整个镜像(适用于镜像而非运行态容器)











