docker tag 重命名_Docker使用技巧:你会正确导出Docker镜像?

2023-05-16

工作中我们会常常遇到在没有镜像仓库中心的时候,需要将容器放到到另外一个主机上,此时,我们就需要将镜像导出,今天我们就介绍下docker的导出(docker export & docker save)和导入(docker import & docker load)的命令。

docker export & docker import

使用docker export 命令导出的文件相当于是容器的快照,并不保存镜像的层历史和元数据信息,目标类型是容器文件系统,文件导出为TAR文件,该文件只是包含了组成容器状态的文件,而且,正在运行中的状态不会被保存.

比如,现在需要导出主机上的nginx镜像:

 docker export -o nginx.tar nginx:myversion  #等价于 docker export nginx:myversion > nginx.tar 

导入:

#如果不指定对应的nginx:myversion版本和标签信息,导入之后REPOSITORY和TAG会显示为docker import nginx.tar nginx:myversion

docker save & docker load

docker save 则是可以保留镜像的层历史和元数据信息,相应的,导出的镜像文件TAR也会比较大。

使用docker save导出的镜像文件,也可以使用docker import导入,对应的,导入之后将会丢弃容器的历史和元数据信息。如果要保留镜像的历史,可以使用load而不是import,这样其历史也会在另一边的docker守护进程上得到保留。

导出

docker save -o nginx.tar nginx:myversion#等价于docker save -o nginx:myversion > nginx.tar

导入,不指定版本TAG信息,在导入之后也会显示nginx的版本信息。

docker load -i nginx.tar #等价于docker load < nginx.tar

总结

docker save保存的是包含层历史和元数据的镜像(image)文件,docker export保存的是不包含容器层历史和元数据的容器(container)快照;docker load可以用来导入镜像文件,docker import用来导入容器文件,两者都会恢复为镜像;docker load不能对导入的镜像重命名,而docker import可以为镜像指定新名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker tag 重命名_Docker使用技巧:你会正确导出Docker镜像? 的相关文章

随机推荐