Docker Push Time Calculator
Estimate docker push duration to a registry based on image size and upload speed.
Inputs
Total compressed size of layers to push.
Available upload bandwidth to the registry.
Number of layers not already present in the registry (delta push).
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
Data to upload
250MB × (5/12)
= 104.2MB
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.