Docker 中有两个命令可以将镜像导出为本地文件系统中的 tar 文件:
docker save
和docker export
。尽管它们的作用类似,但它们之间有一个重要的区别。
1.使用方式的不同:
docker save
的使用示例:
docker save -o test.tar image_name
docker export
的使用示例:
docker export container_name > test.tar
2.导出内容的不同:
docker save
命令会将整个镜像及其所有的层保存为一个 tar 文件,包括镜像的元数据和配置信息。可以将这个 tar 文件用于在其他主机上加载镜像,或将其推送到 Docker Registry 中。
docker export
命令指挥导出容器的文件系统,不包括镜像的元数据和配置信息。它可以将容器的文件系统保存为一个 tar 文件,可以用于备份或共享容器的文件系统,但不能用于创建新的镜像。
3.导出文件的不同:
使用 docker save
命令导出的 tar 文件可以使用 docker load
命令导入到 Docker 中,以创建一个新的镜像。导出的 tar 文件包括完整的镜像层级结构和镜像元数据。
使用 docker export
命令导出的 tar 文件可以使用 docker import
命令导入到 Docker 中,以创建一个新的镜像。但是,导入的镜像不包括原始镜像的任何元数据或配置信息。它只是简单地创建了一个包含容器文件系统的新镜像,该镜像可以用于创建新容器。
4.总结
综上所述,可以根据具体需要选择 docker save
或 docker export
命令:
- 如果需要导出整个镜像及其元数据和配置信息,则应该使用
docker save
命令; - 如果只需要导出容器的文件系统,则可以使用
docker export
命令。
补充:什么是镜像的元数据?
Docker学习(十九)什么是镜像的元数据?