Skip to content

docker-exporterLightweight Docker metrics for ARM64 & cgroup v2

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-exporter
~7 MiB
RAM at idle
~10 MB
image (musl + distroless)
<1%
CPU at steady state
2
arches: amd64 · arm64

Quick start ​

bash
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:latest

Then scrape http://localhost:9713/metrics. Full walkthrough in the installation guide.

Why it exists ​

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 →

docker-exporter vs cAdvisor ​

Dimensiondocker-exportercAdvisor
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 MiB22.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 containerNo (socket read-only)Yes
ScopeDocker containersContainers + 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 →