Myluzh Blog

Docker镜像管理:掌握save/load与export/import的精髓

发布时间: 2024-6-7 文章作者: myluzh 分类名称: Docker 朗读文章


0x01 Docker Save & Load
docker save: 用于将Docker镜像保存为.tar文件。这个过程会保存镜像的所有层、元数据和历史记录,因此生成的文件较大。当你需要备份或者迁移某个镜像时非常有用,尤其是当你需要保留镜像的全部构建历史以便将来在其他地方恢复时。
docker save -o my_image.tar my_image:tag
docker load: 用来载入由docker save创建的镜像文件,将其恢复到本地镜像库中。这个过程不会允许你为导入的镜像指定新的名称,如果本地已有同名镜像,它会被覆盖。
docker load -i my_image.tar

0x02 Docker Export & Import
docker export: 用于将运行中的Docker容器导出为一个 tar 归档文件。与save不同,export只导出容器当前的状态(即最终的文件系统层),不包含容器的元数据或历史记录,因此导出的文件通常比用save导出的镜像文件要小。
docker export my_container > my_container.tar
docker import: 用来将一个tar文件导入为Docker镜像。这个命令通常与export一起使用,但它也可以用来导入任何符合Docker镜像格式的tar文件。与load不同,import允许你在导入时为镜像指定新的名称和标签。
docker import my_container.tar my_new_image:tag

0x03 总结区别
内容:docker save操作的是镜像,包括所有层、历史和元数据;而docker export操作的是容器,仅导出最终的文件系统层。
用途:如果你需要保存或迁移完整的镜像及其构建历史,应该使用save和load。如果你只需要导出容器当前状态作为一次性快照或备份,应使用export和import。
可重命名:docker import允许在导入时为镜像指定新的名称,而docker load不支持这一功能。
文件大小和结构:由于包含了更多元数据和历史,docker save产生的文件通常比docker export的大。

标签: docker import save export load

发表评论