位置: 编程技术 - 正文
推荐整理分享Docker的save和export命令的区别(docker save -o),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:docker save load,docker exited 1,docker save -o,docker exited 1,docker extracting,docker save -o tar.gz,docker extracting,docker 存储,内容如对您有帮助,希望把文章链接给更多的朋友!
我曾在之前的一篇文章中介绍了有关docker的一些基本的操作(Docker学习笔记),最近一直在玩Docker,一种应用程序容器和Linux的虚拟技术。它太酷了,创建Docker镜像和容器只需要几分钟。所有的工作都是开箱即用的。
学习归学习,但是之后我希望能保存下我的工作。在Docker的save和export命令之间,我凌乱了~~~
Docker是如何工作的(简单说明)Docker是基于镜像的。镜像类于已经包含了文件、配置和安装好的程序的虚拟机镜像。同样的,你可以像启动虚拟机一样启动多个镜像实例。运行中的镜像称为容器。你可以修改容器(比如删除一个文件),但这些修改不会影响到镜像。不过,你使用docker commit <container_id> <image_name>命令可以把一个正在运行的容器变成一个新的镜像。
举个例子:
现在,我们有两个不同的镜像了(ubuntu和ubuntuv1),还有一个通过修改ubuntu容器得来的容器(多了一个/home/test文件夹)。下面来看看,是如何持久化这些修改的。
导出(Export)export命令用于持久化容器(不是镜像)。所以,我们就需要通过以下方法得到容器ID,接着执行导出:
最后的结果是一个tar文件(比使用save命令稍微小些,基本上差不多)。
保存(Save)save命令用于持久化镜像(不是容器)。所以,我们就需要通过以下方法得到镜像名称,接着执行保存:
最后的结果是一个tar文件(比使用export命令稍微大些)。
它们之间的不同现在我们创建了两个tar文件,让我们来看看它们是什么。首先做一下小清理——把所有的容器和镜像都删除:
现在开始导入刚刚导出的容器:
使用类的步骤导入镜像:
那它们之间到底存在什么不同呢?我们发现导出后的版本会比原来的版本稍微小一些。那是因为导出后,会丢失历史和元数据。执行下面的命令就知道了:
执行命令,显示下面的内容。正你看到的,导出后再导入(exported-imported)的镜像会丢失所有的历史,而保存后再加载(saveed-loaded)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚(可以执行docker tag <LAYER ID> <IMAGE NAME>来回滚之前的层)。
到此完毕~~当你工作做完了之后,重启PC时,再执行docker 相关的命令时发现会出现这样的错误,切无法执行相关的操作了:
在网上也有以下解决的方法,例如:
上面的解决方法我也曾试过,不但没有解决问题,而且还会出现其他的错误。正确的解决方法是:sudo service docker restart 就OK了~~
或者 sudo service docker.io restart
Android开发错误解决方法汇总 1、Setandroid:baselineAligned=falseonthiselementforbetterperformance如果LinearLayout被用于嵌套的layout空间计算,它的android:baselineAligned属性应该设置成false,以加速layout
【Android】系统Root与静默安装 Android系统Root与静默安装静默安装,指的是安装时无需任何用户干预,直接按默认设置安装应用。因为,它的无需用户干预,很多情况下变成了用户压根
android中动态添加组件 /preprename=codeclass=htmlpublicvoidchoices_add(Viewv){if(choicesNumber2){ImageViewchoice_ImageView=(ImageView)findViewById(choicesNumber+);choice_ImageView.setVisibility(View.INVISIBLE);}++choices
标签: docker save -o
本文链接地址:https://www.jiuchutong.com/biancheng/374458.html 转载请保留说明!友情链接: 武汉网站建设