我是docker的新手,可以为下面的查询提供任何帮助
Q1:如果可以从服务器“导入/加载”新图像[Image:ver2],我们如何只导出(或保存/加载)新的更改[即10MB]?
Q2:如果我们能够对现有图像进行上述更改[即图片:Ver1],有哪些步骤可以做?
答案 0 :(得分:1)
Docker是一个基于文件的系统,对于每个Pull请求,它只会提取出更改的文件。例如,假设您在docker镜像文件中有1 GB数据。现在,您向其添加了500MB的数据。然后,在docker pull的情况下,它只会提取更改,即两个文件之间的 Delta 部分。所以,你是安全的,它不会分开所有的东西。
虽然在制作DockerFile或docker conf文件时,您应该非常小心,因为Docker文件中的所有行都存储为系统中的一个层。如果假设您的Docker文件中有10个图层,并且您要更改第5个图层,则将再次拉出第5个图层之后的所有图层。这是使用Docker的唯一问题。 休息时,它将始终为每个拉取请求拉出更改的增量。
答案 1 :(得分:0)
如果要保存/加载泊坞窗图像的tar文件,则无法导出部分图像。您可以发送整个图像,将数据移动到不以这种方式传输的外部卷,或者您可以使用docker注册表。
后者相对容易实现,docker包含an image,您可以在其中运行自己的私有注册表。推送到docker注册表只会发送更改的图层,因此您可以使用图层缓存并构建Dockerfiles以最小化更改的图层数。
答案 2 :(得分:0)
好吧,我已经构建了tool来创建tar映像的docker映像版本(逐层)的差异(在顶层),并在以后膨胀原始映像。
注意。仅适用于顶层中的更改。
四步过程: