Container Image Pull Bandwidth Calculator
Estimate the egress bandwidth and cost of pulling a container image across your fleet, and see what a local cache saves.
How it works
Billed pulls = pulls/day × days × (1 − cache hit%) · Egress GB = billed pulls × image MB ÷ 1024 · Cost = GB × price/GB
Every time a node pulls an image that is not already cached it downloads the full compressed layers, and registry egress is billed per gigabyte. Fleet churn — autoscaling, rolling deploys and node restarts — multiplies a single image size into serious traffic. A pull-through cache or in-cluster registry mirror serves repeat pulls locally, so its hit rate directly cuts both the bandwidth and the bill.
Worked example
A 350 MB image pulled 200 times a day for 30 days with no cache is 6,000 pulls × 350 MB ÷ 1024 ≈ 2,051 GB; at $0.09/GB that is about $184.57. A 70% cache hit rate would cut it to roughly $55.
Frequently asked questions
Should I use the compressed or uncompressed image size?
Use the compressed size — that is what travels over the network during a pull. The uncompressed size only matters for disk space on the node after extraction.
How do I reduce image pull bandwidth?
Shrink the image with multi-stage builds and slim base images, keep frequently changed code in the top layers so shared layers stay cached, and run a registry mirror or pull-through cache close to your nodes.
Do already-cached layers still count?
No. Docker pulls only layers whose digest it does not already have, so an image sharing a common base with what is on the node transfers far less than its full size. Model that with the cache hit rate.
Related calculators
This calculator is for educational purposes. Double-check important results before acting on them.