Skip to content

Docker container monitoring

The Containers panel on a server’s page lists that server’s Docker containers with live CPU, memory, and network figures. There is nothing to configure: the collector probes the Docker socket on every collection cycle, so the panel appears on its own about a minute after the collector can reach Docker.

The header counts the containers (“4 total · 3 running · 1 exited”); each container gets a card:

  • Name, state, and image — Compose-managed containers carry their Compose names (demo-stack-web-1), and the collector also reports the Compose service and project labels.
  • CPU and Memory gauges — memory shows usage against the container’s limit (the server’s total memory when the container is unlimited).
  • Net ↓ / Net ↑ — current network rates (running containers only).
  • The short container ID, and when the container was last seen.

Exited containers stay on the list for 24 hours, showing their exit code and when they stopped (“Exited (0) · 3 min ago”) — long enough to notice a container that died overnight.

Containers panel: three running Compose containers with CPU, memory, and network gauges, and one exited container

Container CPU percentages mean the same thing as in docker stats, not the same thing as the server’s CPU panel. The gauge’s own tooltip states it: “% of a single vCPU. 100% = one core fully used; containers using multiple cores can exceed 100%.”

So on a 4-core server, a container pinning every core reads 400% — a busy container, not a broken chart. The server’s own CPU panel stays on the 0–100% whole-server scale.

When Docker is present but the panel says “No containers detected on this server”, the usual cause is that Docker was installed after the collector. The install script adds the collector’s user to the docker group only if that group exists at install time — installing Docker later leaves the collector without permission to read the socket.

Grant it and restart:

Terminal window
usermod -aG docker monitorable
systemctl restart monitorable-collector

The panel fills on the next collection cycle, within about a minute. (Re-running the install command does the same as part of an upgrade.) What the collector reads from the socket — and the container fields it never touches, like environment variables and commands — is listed in What the collector collects.