如何通过DockerExport导出容器文件系统为压缩包

轻雪姑娘_7508

轻雪姑娘_7508

2026-04-02

232人浏览

原创

docker 无直接 export 压缩命令,但可用 docker export | gzip > file.tar.gz 一键导出为压缩包;导出的是运行时合并文件系统快照,不含镜像层、元数据、卷及虚拟文件系统内容。

如何通过dockerexport导出容器文件系统为压缩包

Docker 本身没有 docker export 命令直接生成压缩包(如 tar.gz),但可通过 docker export 输出为 tar 流,再配合管道压缩实现一键导出为压缩包。

使用 docker export + gzip 一步导出为 .tar.gz

docker export 默认输出是未压缩的 tar 流,可直接通过管道交给 gzip 生成压缩包:

  • 基本命令(推荐):
    docker export | gzip > container-rootfs.tar.gz
  • 例如导出名为 myapp 的容器:
    docker export myapp | gzip > myapp-export.tar.gz
  • 若需保留原始 tar 格式(不压缩),去掉 gzip > ... 即可:
    docker export myapp > myapp-rootfs.tar

导出时注意容器状态和内容范围

docker export 导出的是容器运行时的**合并文件系统快照**(即 container layer),不含镜像层、元数据、卷(volumes)或挂载点内容:

  • 容器必须处于 运行中或已停止 状态(不能是已删除状态);
  • 只包含容器启动后写入的文件(如日志、临时配置、应用生成数据),不包含镜像自带的只读层;
  • 不会保存 /proc、/sys、/dev 等虚拟文件系统内容(导出时自动过滤);
  • 如果容器使用了绑定挂载(bind mount)或命名卷,对应宿主机路径的内容不会被导出。

验证与解压导出的压缩包

导出完成后,可用标准工具检查和解压:

  • 查看压缩包内文件列表:
    tar -tzf container-rootfs.tar.gz | head -20
  • 解压到当前目录(注意:会覆盖同名文件):
    tar -xzf container-rootfs.tar.gz
  • 安全解压到指定子目录:
    mkdir exported-rootfs && tar -xzf container-rootfs.tar.gz -C exported-rootfs

替代方案:用 docker commit + docker save(适用需保留镜像结构场景)

若你实际需要的是“带历史层和元数据”的镜像备份(而非纯文件系统快照),应改用:

  • 先提交为新镜像:
    docker commit my-exported-image:latest
  • 再保存为 tar 包(含所有层+JSON元数据):
    docker save my-exported-image:latest | gzip > my-image.tar.gz
  • 该方式适合迁移、离线加载,但体积通常更大、结构更复杂。
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2055

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3062

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1036

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3459

7

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

705

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5179

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6157

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2353

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

259

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习