The working set docker stats shows
usage − inactive_file on cgroup v2, usage − cache on v1: the same number `docker stats` reports, under cAdvisor's metric name.
A tiny Rust Prometheus exporter for Docker containers — about 7 MiB of RAM, 7 to 30 times less CPU than cAdvisor on ARM64, no privileged mode.
docker run -d \
--name docker-exporter \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-p 9713:9713 \
--restart unless-stopped \
ghcr.io/dlepaux/docker-exporter:latestThen scrape http://localhost:9713/metrics. Full walkthrough in the installation guide.
cAdvisor watches the whole host. It runs privileged with five host mounts and keeps walking the cgroup tree on a timer, whether anyone scrapes it or not. On a busy 8-core ARM64 host it used 30 times docker-exporter's CPU and 84 times its memory to report the same containers (benchmark →).
docker-exporter does one job. It reads the Docker stats API when Prometheus scrapes, computes the working set the way docker stats does on both cgroup versions, talks to the socket read-only and runs non-root.
Memory reading zero on a Pi? That's the boot configuration, and it hits every tool alike, cAdvisor and docker-exporter included. One flag fixes it →
| Dimension | docker-exporter | cAdvisor |
|---|---|---|
| Image size (arm64) | 10.3 MB (3.4 MB to pull) | 63.7 MB (27.7 MB to pull) |
| RAM (quiet Pi 5 / busy Rock 5B+) | 4.2 / 5.1 MiB | 22.5–35.6 / 128–429 MiB |
| CPU (same hosts, share of one core) | 0.13 / 0.67% | 0.87–1.72 / 10.5–20.4% |
| Privileged container | No (socket read-only) | Yes |
| Scope | Docker containers | Containers + host + processes + hardware |
Measured side by side on a Raspberry Pi 5 on 2026-09-28, docker-exporter 1.6.0 against cAdvisor v0.60.6 — see the benchmark and its method →.
Already running cAdvisor and happy with it? Keep it. Want a smaller footprint on an SBC? See the full comparison →