Docker Image Download Time Calculator

Estimate Docker image pull times based on image size and available bandwidth. Covers layer caching, compression, and registry performance considerations.

DevOps

Detailed Explanation

Docker Image Download Time

Docker image pull times directly impact deployment speed, CI/CD pipeline duration, and developer productivity. Understanding the factors involved helps optimize container workflows.

Common Image Sizes

Image Compressed Size Uncompressed
alpine:latest ~3 MB ~7 MB
node:20-slim ~60 MB ~180 MB
node:20 ~350 MB ~1 GB
python:3.12 ~350 MB ~1 GB
ubuntu:24.04 ~30 MB ~78 MB
nvidia/cuda ~2-4 GB ~5-8 GB
Custom app image 200-800 MB 500 MB - 2 GB

Transfer Time Examples

Pulling node:20 (350 MB compressed) over different connections:

WiFi (50 Mbps):   350 * 8 / 50 = 56 seconds
Office (100 Mbps): 350 * 8 / 100 = 28 seconds
Fiber (1 Gbps):    350 * 8 / 1000 = 2.8 seconds
CI Runner (10G):   350 * 8 / 10000 = 0.28 seconds

Layer Caching Impact

Docker images consist of layers, and unchanged layers are cached locally. A typical update might only change the top 2-3 layers:

Full image: 350 MB (all layers)
After code change: 15-50 MB (only changed layers)
Speedup: 7-23x faster pulls

Registry Performance

Pull speed depends on registry location and infrastructure:

  • Docker Hub (free): Throttled, ~100 pulls/6 hours
  • Docker Hub (paid): Higher limits, ~200 Mbps typical
  • ECR / GCR / ACR: Region-local, ~500 Mbps - 1 Gbps
  • Self-hosted registry: Limited by your infrastructure

Optimizing Pull Times

  1. Use slim/alpine base images to reduce size
  2. Order Dockerfile layers from least to most frequently changed
  3. Use multi-stage builds to exclude build dependencies
  4. Configure registry mirrors close to your infrastructure
  5. Pre-pull common images on CI runners

Use Case

DevOps engineers optimizing CI/CD pipeline times, platform teams sizing Kubernetes node bandwidth, developers choosing between slim and full base images, and SREs planning container rollout speeds for auto-scaling events.

Try It — Bandwidth Calculator

Open full tool