Skip to content
Calcrivo

Docker Push Time Calculator

Estimate docker push duration to a registry based on image size and upload speed.

Inputs

MB

Total compressed size of layers to push.

Mbps

Available upload bandwidth to the registry.

layers

Number of layers not already present in the registry (delta push).

layers

Total layers in the image.

Estimated Push Time

19.7seconds

Push Time

0.33minutes

Data to Upload

104.2MB

Skipped (already in registry)

7layers

Step by step

  1. Data to upload

    250MB × (5/12)

    = 104.2MB

  2. Upload time + overhead

    104.2MB / 6.3MB/s + 3s

    = 19.7s

How it works

Docker push only uploads layers not already present in the registry. Push time = (compressedSize × layersToUpload/totalLayers) / uploadBandwidth + overhead. Keeping shared base layers constant means only your application layer changes need uploading.

Formula

Push Time

pushTime = (imageSize × newLayers / totalLayers) / (uploadBandwidth / 8) + overhead

imageSize
Compressed image size in MB
newLayers
Layers not yet in registry
uploadBandwidth
Upload bandwidth in Mbps

Frequently Asked Questions

Why is push sometimes faster than pull?

Pushes benefit greatly from layer deduplication — if most layers already exist in the registry from previous pushes, only the changed layers need uploading, which can be a tiny fraction of the total image.

How does a CI pipeline affect push time?

CI runners often have high-bandwidth connections to nearby registries (same cloud region), and using layer caching in CI means incremental builds push only 1-2 changed layers.

You might also need