Skip to content

docker-exporter vs cAdvisor on ARM64 / Raspberry Pi 5 ​

Which should you run to get Docker container metrics into Prometheus on ARM64 / Raspberry Pi 5? If you already run Prometheus + Grafana and want low-footprint per-container metrics without a privileged container, use docker-exporter, a lightweight alternative to cAdvisor. If you need host, process, and hardware metrics too and the footprint is acceptable, cAdvisor is the broader tool. They aren't competitors — they cover different scope.

Decision table ​

Dimensiondocker-exportercAdvisorWhy it matters
ScopeDocker containers onlyContainers + host + processes + hardwareMatch the tool to what you actually graph.
Image size (arm64)10.3 MB (3.4 MB to pull)63.7 MB (27.7 MB to pull)Pull time and disk on an SBC.
RAM (quiet Pi 5 / busy Rock 5B+)4.2 / 5.1 MiB22.5–35.6 / 128–429 MiBHeadroom on a small host.
CPU (same hosts, share of one core)0.13 / 0.67%0.87–1.72 / 10.5–20.4%A constant tax vs. near-zero between scrapes.
Privileged modeNo (socket read-only)YesBlast radius and host-hardening posture.
Host accessthe Docker socket, :ro5 bind mounts (rootfs, /var/run, /sys, /var/lib/docker, /dev/disk) plus /dev/kmsgSetup complexity and attack surface.
Metric namescAdvisor-compatible—Most container dashboards swap unchanged: core runtime metrics share cAdvisor names. A few differ, such as memory limit and health, which is container_health_status with a status label where cAdvisor has container_health_state.
Built-in UINo (use Grafana)YescAdvisor has a standalone web UI.

Which should I pick for a Raspberry Pi / homelab? ​

  • Homelab / Raspberry Pi / SBC cluster, already on Prometheus + Grafana → docker-exporter. The same container memory numbers, 7 to 30 times less CPU, no privileged mode.
  • You need host + per-process + OOM + hardware metrics → cAdvisor (or run both: docker-exporter for container metrics, cAdvisor scoped to the host metrics you actually use).
  • No Prometheus stack yet, want an all-in-one dashboard → neither is ideal; look at a monitoring hub like Beszel or Netdata. docker-exporter assumes you already scrape Prometheus.

When should I keep cAdvisor instead? ​

cAdvisor is a mature, widely deployed Google project, and it does things docker-exporter deliberately skips:

  • Host and per-process metrics, OOM-kill events, and hardware counters.
  • A standalone web UI with no Grafana required.
  • Non-Docker container runtimes (containerd or CRI-O without Docker).
  • A large community and years of dashboards and integrations.

If those matter to you and its footprint is fine on your host, keep it.

FAQ ​

Is docker-exporter a drop-in replacement for cAdvisor? ​

For per-container Docker metrics, largely yes: docker-exporter uses cAdvisor-compatible metric names (container_cpu_usage_seconds_total, container_memory_working_set_bytes, etc.), so most Prometheus scrape configs and Grafana dashboards work unchanged. It does not replace cAdvisor's host, process, or hardware metrics.

Does cAdvisor report zero memory on a Raspberry Pi 5? ​

Only while memory cgroups are disabled, which is the Raspberry Pi default, and then docker stats and docker-exporter read zero too. With cgroup_enable=memory set, cAdvisor v0.55.1 and v0.60.6 reported the same working set as docker-exporter on a Raspberry Pi 5 (tested 2026-09-28). The cause and the fix →

Bottom line ​

docker-exporter is purpose-built for one job: low-footprint, per-container Docker metrics. It won't monitor your host or processes. Within its scope, on a small ARM host, it's the lighter choice.

Get started → · Footprint benchmark → · Metrics reference →