Oh My Algorithm
Concept GuideLayer Transfer · Digests

Registry push & pull

A registry doesn't move images whole. An image is a manifest — a list of layers — plus the layers, and push and pull transfer only the layers the other side is missing. Each layer is identified by a content hash (its digest), so uploading many images built on the same base still stores that base layer exactly once.

01Registry push & pull

A registry doesn't move images as a single blob. An image is a manifest — a list of layers — plus the layers themselves.

push sends the manifest first. Each layer is identified by a digest, a hash of its contents.

The registry compares and answers. Four layers — base and dependencies — went up with 1.1.0 already and don't need resending.

So what actually uploads is one changed app layer, 12 MB. The image is 155 MB, but the transfer is under a tenth of that.

Finally the tag is pointed at this manifest. A tag is just a label; the digest is what pins the content.

Pulling on a deploy server runs the same exchange in reverse, starting with the manifest.

Only layers missing locally are downloaded. If another image on the same base is already there, those layers are skipped.

In short · layer-level transfer plus content-addressed digests mean that from the second deploy on, only what changed moves. The higher you put the things that change often, the less you ship.

my-app:1.2.0base · alpinesha256:…l1runtime · nodesha256:…l2deps · npmsha256:…l3configsha256:…l4app · dist/sha256:…l5
1 / 8

02 Understand It Simply

For Everyone
🔑How It Works

An image travels as a manifest plus its layers. Layers are identified by content digest, so the ones the other side already holds are skipped and only the missing ones are transferred.

💡In Plain Words

push sends the manifest's layer digests to find out which layers already exist, then uploads only the rest.

pull does the same in reverse, fetching only what's missing locally.

From the second deploy on, typically just the app layer moves.

Because digests are content-based, different tags with identical contents resolve to the same layer.

📍Where It's Used
  • Cutting CI/CD deploy times
  • pinning releases by tag or digest
  • running a private registry
  • and ordering layers to reduce transfer size

03 Frequently Asked Questions

FAQ
What is Registry push & pull?+

A registry doesn't move images whole. An image is a manifest — a list of layers — plus the layers, and push and pull transfer only the layers the other side is missing. Each layer is identified by a content hash (its digest), so uploading many images built on the same base still stores that base layer exactly once.

Where is Registry push & pull used?+

Cutting CI/CD deploy times, pinning releases by tag or digest, running a private registry, and ordering layers to reduce transfer size.

What's a simple analogy for Registry push & pull?+

An image travels as a manifest plus its layers. Layers are identified by content digest, so the ones the other side already holds are skipped and only the missing ones are transferred.