cli icon indicating copy to clipboard operation
cli copied to clipboard

delta between two docker images and patching it

Open nx2804 opened this issue 1 year ago • 1 comments

Description

Hi Team,

We wanted to generate a delta between two version images and ship only the incremental changes to customer instead of whole new version image which is huge in size. so we need delta generation and patching mechanism for docker images. We tried with general binary diffing and patching tools. but that doesnt solve this problem since every image is stored as a blob in docker when we use docker save . so the delta generated is huge in size and other problem is docker save modifies the sha values when we save the same image multiple times

Kindly add this a new feature request

Thanks

nx2804 avatar Oct 09 '24 06:10 nx2804

Yes, this is a known limitation of the layer-based diffs for situations where a large number of files are part of the same layer (but potentially only few of those changed)

You may be interested looking at some of the optional containerd snapshotters; I think the nydus snapshotter (and related tools) allow converting images to a more optimized format to provide deltas https://github.com/containerd/nydus-snapshotter?tab=readme-ov-file

There's also some prior art from balena to generate binary deltas (but not sure if that's compatible with regular runtimes); https://blog.balena.io/why-linux-containers-matter-for-the-internet-of-things/

thaJeztah avatar Oct 09 '24 20:10 thaJeztah

closing, looks like this went stale.

thaJeztah avatar Apr 23 '25 06:04 thaJeztah