docker export 和 docker save 的主要区别在于它们处理的对象和用途不同。
处理对象:
docker export 命令用于将指定的容器转换成独立的 .tar 文件,它导出的是容器的文件系统,不包括镜像的元数据和配置信息。这意味着它主要处理的是容器本身,而不是镜像。
docker save 命令用于将 Docker 镜像打包成 .tar 文件,它保存的是整个镜像及其所有的层,包括镜像的元数据和配置信息。这表示它处理的是镜像。
用途:
docker export 主要用于快速备份或转移某个容器,或在需要将容器升级到新的版本之前对其进行测试。它适用于备份或共享容器的文件系统,但不能用于创建新的镜像。
docker save 通常用于在不同的 Docker 主机之间迁移 Docker 镜像,或者将它们备份到本地系统以供以后使用。这个命令经常用于离线环境下安装 Docker 镜像,并且在应用程序的生命周期内保存和复制 Docker 镜像。
导入过程:
使用 docker export 导出的 .tar 文件可以使用 docker import 命令导入到 Docker 中,以创建一个新的镜像。但导入的镜像不包括原始镜像的任何元数据或配置信息,只是简单地创建了一个包含容器文件系统的新镜像。
使用 docker save 导出的 .tar 文件可以使用 docker load 命令导入到 Docker 中,以创建一个新的镜像。导出的 tar 文件包括完整的镜像层级结构和镜像元数据,使得导入的镜像与原始镜像几乎完全相同。