我正在玩Docker几天,我已经制作了一些图像(这真的很有趣!)。现在我想坚持我的工作,来到了保存
和导出
命令,但我不完全理解它们。
Docker中的保存和导出有什么区别?
导出的图像不会保存任何图层或历史信息,因此它会更小,您将无法回滚。
保存的图像将具有更大的图层和历史信息。
如果将其提供给客户,问题是您是否希望保留这些层?
保存
和导出
命令之间有两个主要区别。
>
当您使用导出的文件系统创建新图像时,此新图像将不包含Dockerfile中的任何用户、暴露、运行等命令。只传输文件结构。所以,当您在Dockerfile中使用上述关键字时,您不能使用export命令将图像传输到另一台机器-您需要始终使用save命令。
简单的回答是:
>
保存将获取一个映像:对于虚拟机或物理服务器,这将是安装。ISO映像或磁盘。基本操作系统。
它将打包构建映像所需的所有链的层和元数据。然后,您可以将这个“保存”的图像链加载到另一个docker实例中,并从这些图像创建容器。
导出将获取整个容器:就像普通虚拟机的快照一样。当然,保存操作系统,也保存您所做的任何更改,以及在容器生命周期内写入的任何数据文件。这更像是一个传统的备份。
它将为您提供一个包含容器文件系统的平面. tar存档。
编辑:由于我的解释可能仍然会导致混淆,我认为重要的是要理解其中一个命令适用于容器,而另一个命令适用于图像。
>
一个图像必须被视为“死”或不可变,从它开始0或1000个容器不会改变一个字节。这就是为什么我在早些时候将其与系统安装ISO进行了比较。它可能更接近于一张现场CD。
容器“引导”图像并在其之上添加一个附加层。此层存储容器上的任何更改(创建/更改/删除文件...)。
问题内容: 我在Docker上玩了几天,我已经制作了一些图像(这真的很有趣!)。现在,我想继续我的工作,来到and 命令,但是我不完全理解它们。 和Docker有什么区别? 问题答案: 简短的答案是: 将获取映像:对于VM或物理服务器,将是安装.ISO映像或磁盘。基本操作系统。 它将打包构建图像所需的所有链的层和元数据。然后,您可以将此“保存的”图像链加载到另一个docker实例中,并从这些图像创
我理解(用于容器)和(用于图像)之间的区别。但最终,通过save或export生成的tarball应该用作图像。 那么为什么有两个命令来从tarball生成图像呢?
问题内容: 并且似乎正在与同一个dockerFile进行交互,这两个工具之间有什么区别? 问题答案: 在一个码头工人的发动机管理单个容器时,CLI使用。这是访问docker daemon api的客户端命令行。 该CLI可以用于管理多容器应用程序。它还会将您在cli 上输入的许多选项移到文件中,以方便重用。它在与所使用的同一docker api上充当前端“脚本” ,因此您可以使用命令和许多shel
问题内容: 我了解(对于容器)和(对于图像)之间的区别。但最终,保存或导出产生的tarball应该用作 图像 。 那么,为什么有2条命令可以从压缩包制作图像呢? 问题答案: 确实会产生tarball, 但 包含所有父图层以及所有标签+版本。 也会产生压缩包,但没有任何层/历史记录。 当人们想“展平”映像时通常使用它,如Thomas Uhrig的 “展平Docker容器或映像 ” 所示: 但是,一旦
在这种情况下,这些rest层ID是否与其他一些图像相对应呢?如果是真的,我可以视图层为图像吗?
问题内容: 有人可以帮助我了解 docker run 和 docker container run 之间的区别吗? 当我执行 docker run –help 和 docker container 从docker cmd行 运行–help时 。我看到以下 在新容器中运行命令 。 他们在内部运行容器的方式有什么不同,还是两者都在做相同的工作? 根据https://forums.docker.com/