Docker — Benchmarks
Scope
Performance characteristics, scaling limits, and resource consumption for Docker.
| Metric |
Docker |
Native |
Overhead |
| CPU |
Near-native |
Baseline |
< 1% |
| Memory |
Near-native |
Baseline |
10-30MB per container |
| Network (bridge) |
90-95% native |
Baseline |
5-10% overhead |
| Network (host) |
Near-native |
Baseline |
< 1% |
| Disk I/O (overlay2) |
85-95% native |
Baseline |
5-15% overhead |
| Disk I/O (bind mount) |
Near-native |
Baseline |
< 1% |
Image Size Benchmarks
| Base Image |
Size |
Use Case |
| scratch |
0MB |
Static Go binaries |
| alpine |
7MB |
Minimal Linux |
| distroless |
15-25MB |
Secure, no shell |
| debian-slim |
80MB |
Compatibility needed |
| ubuntu |
77MB |
Full Linux tools |
| node:22-alpine |
130MB |
Node.js apps |
| python:3.12-slim |
150MB |
Python apps |
| Strategy |
Cold Build |
Cached Build |
Size Impact |
| Single stage |
30-120s |
5-30s |
Large (500MB+) |
| Multi-stage |
60-180s |
10-30s |
Small (50-150MB) |
| BuildKit cache |
60-180s |
3-10s |
Same |
| Buildx bake |
30-90s |
3-10s |
Parallel builds |
Compose Scaling
| Containers |
Memory (runtime) |
Startup Time |
Notes |
| 10 |
100-500MB |
5-15s |
Typical dev setup |
| 50 |
500MB-2GB |
15-45s |
Medium application |
| 100 |
1-5GB |
30-120s |
Large stack |