繁体   English   中英

docker 如何加载差异图像

[英]How docker load a diff image

我知道docker save可以将图像保存到 tar 并使用docker load重新加载图像。

例如:

我有一台机器 A 和 B。B无法连接集线器 A 是图像:最新,B 是图像:基础。

我必须将A 中的多图像保存为某个 tar 文件,但 tar 文件太大而无法传输。

我可以保存在标签或图像ID之间的差异和B中加载差异

不保存整个图像,这有助于将补丁更新得更小。

使用标准 Docker 工具无法做到这一点。 docker save的唯一选项是写入文件而不是标准输出的选项,并且它始终包含所有父层(和基础图像)。

如果您唯一的问题是传输映像,请考虑使用减少映像大小的技术(例如,使用多阶段映像在最终映像中不包含构建时依赖项)或使用split (1) 之类的工具来破坏tar 文件分成更小的部分。

我相信docker save tar 文件输出与“导出图像”API 调用相同 可能可以手动编辑该 tar 文件以删除图层,并且可能有工具可以执行此操作。 (不过,这并不是一条特别主流的路径;我几年前研究过它,但自己没有做过,偶尔会看到很少见的 SO 答案中提到的工具。)

docker pulldocker save的标准行为之间,只创建完整的图像链,原则上没有办法设置 Docker,这样你就永远不会只有图像的“上半部分”,而没有下面的基础层。 手动编辑docker save tar 文件将违反此不变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM