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

docker-如何仅导出/导入(或保存/加载)新更改?

柳仲卿
2023-03-14

我是docker的新手,有人能帮我回答下面的问题吗

  1. 服务器有一个类似1GB的docker映像:ver1[此映像在服务器中存储有.tar文件]

问题1:如果可以从服务器“导入/加载”新图像[图像:ver2],我们如何仅导出/导入(或保存/加载)新更改[即10MB]?

Q2:如果我们能够在现有图像[即图像: Ver1]之上应用上述更改,需要做哪些步骤?

共有3个答案

归俊捷
2023-03-14

好的,我已经构建了一个工具来创建docker图像版本的差异(在顶层)(逐层)作为tarball并稍后膨胀原始图像。

笔记仅适用于顶层中的更改。

4步过程:

  1. docker检查-
吕高寒
2023-03-14

如果要保存/加载docker图像的tar文件,则无法导出部分图像。您可以发送完整图像,将数据移动到不以这种方式传输的外部卷,也可以使用docker注册表。

后者相对容易实现,docker包含一个映像,您可以在其中运行自己的私有注册表。推拉到docker注册表只会发送更改的层,因此您可以利用层缓存和DockerFile的结构来最小化更改的层数。

马祺
2023-03-14

Docker是一个基于文件的系统,对于每个Pull请求,它只提取更改的文件。例如,假设docker映像中的文件中有1 GB数据。现在,您向其中添加了500MB的数据。然后,在docker pull的情况下,它将仅拉动更改,即两个文件之间的增量部分。所以,你是安全的,它不会把所有的东西分开。

虽然在创建DockerFile或docker conf文件时,您应该非常小心,因为docker文件中的所有行都存储为系统中的一个层。如果假设Docker文件中有10个层,并且正在更改第5层,那么第5层之后的所有层都将再次被拉入。这是使用Docker的唯一陷阱。Rest,它将始终为每个拉取请求拉取更改的增量。

 类似资料:
  • 我只在选择创建基本数据复选框时进行了系统更新。我注意到有很多导入的弹劾x。例如essential-data.impex、essential-data_en.impex、essential-data_de.impex、essential-data_ch.impexja、br等。将近7种不同的语言特定的弹劾x被导入。但是我想只导入它的一个版本和其他我不想导入的版本。你能给我建议如何实现这一点吗?谢谢。

  • 我正在编写一个具有两种构建风格的Android应用程序。我在两种风格中都使用同名的类,这个类由main/src/中的通用代码启动。 现在的问题是,当选择build flavor时,有没有方法更新导入类引用!!我对Androidstudio的设置有想法,但在删除旧的导入之前,这是行不通的。任何建议!!

  • 如何通过查询导入和导出.sql文件。在jdbc中使用的注意事项

  • 我有一个nginx的dockerfile。 我有一个docker-compose.yml文件。 运行后 docker合成 它从名为“web”的dockerfile创建图像,并下载redis图像。它还创建了名为“web\u web1”的图像和当我检查 docker ps nginx和redis服务都在运行。我的问题是,如果我将新创建的映像提交到另一个映像并导出容器并导入到另一个环境,在执行docke

  • 我是docker的新手,在运送数据容器时遇到了一个问题。好的,通常我们会发送图像,用户可以根据需要从该图像中启动容器,对吗? 现在我也想运送一些数据——所以我做了一个数据容器: 接下来,我简单地启动了一个bash,并将一些数据插入到我的数据容器中 现在我想允许我的团队成员使用相同的数据(脱机),所以我想“发送”我的数据容器给他们。因此我使用 但是当我重新导入这个 我不能使用这个“容器”,因为它似乎

  • 问题内容: 我有一个看起来像这样的表: 该表中大约有800,000个条目。我收到了一个新的CSV文件,该文件更新了每种产品的所有数量,例如: 因此,大约有750,000个更新(50,000个产品的数量没有变化)。 我的问题是,如何导入CSV这个只更新的基于关闭的数量(唯一的),但离开了,独自一人,和其他领域?我知道如何在PHP中通过遍历CSV并为每一行执行更新来做到这一点,但这似乎效率很低。 问题