当前位置: 首页 > 知识库问答 >
问题:

在Docker中保存和导出有什么区别?

文自怡
2023-03-14

我正在玩Docker几天,我已经制作了一些图像(这真的很有趣!)。现在我想坚持我的工作,来到了保存导出命令,但我不完全理解它们。

Docker中的保存和导出有什么区别?

共有3个答案

彭琛
2023-03-14

导出的图像不会保存任何图层或历史信息,因此它会更小,您将无法回滚。

保存的图像将具有更大的图层和历史信息。

如果将其提供给客户,问题是您是否希望保留这些层?

柯景龙
2023-03-14

保存导出命令之间有两个主要区别。

>

当您使用导出的文件系统创建新图像时,此新图像将不包含Dockerfile中的任何用户、暴露、运行等命令。只传输文件结构。所以,当您在Dockerfile中使用上述关键字时,您不能使用export命令将图像传输到另一台机器-您需要始终使用save命令。

高建本
2023-03-14

简单的回答是:

>

  • 保存将获取一个映像:对于虚拟机或物理服务器,这将是安装。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/