Open-source Docker visualizer

See your whole
Docker stack. Live.

A real-time, interactive map of every container, network, and volume — and exactly how they connect.

bash
$  
Inspect

Click anything.
See everything.

Select any container or volume to open its live panel — stats, ports, mounts, env, logs, and health. The graph is the index to your whole stack.

Try it — click a node
Topology

Grouped by network.

Containers cluster by their primary network. Secondary connections are drawn as cross-group links, and depends_on edges flow with live traffic dots — the true shape of your stack.

Hover a node to trace its links
State

Volumes are first-class.

Named volumes appear as their own nodes, wired to every container that mounts them. See exactly where your data lives — and who can touch it.

Real-time

It stays live.

DockGraph watches the Docker event stream. Start, stop, scale, health — the graph reflects it within a second. Watch a container spawn right now:

EVENT STREAM
watching docker.sock…
Everything, connected

Not another container list.
A map of how it all fits.

DockGraph reads your Docker daemon and renders the whole picture — then keeps it in sync, live.

12:04:51webcontainer started
12:04:51apihealth: healthy
12:04:52migrateexited (0)
12:04:53cachestats updated
12:04:55app-2scaled up

Real-time, always

Watches the Docker event stream and reflects every change — start, stop, health, scale — within a second. No refresh.

Click to focus

Select any node or edge to highlight its connections and fade everything else. Trace a dependency in one click.

nginx
nginx:alpine
running
StatsPortsMountsLogsEnv
CPU2.4%
MEM64.2 MB
NET I/O1.2 MB/s
PID14

Inspect anything

Stats, ports, mounts, env, labels, logs, health.

Containers24
Networks6
Volumes11
CPU38%

Monitoring dashboard

12 cards — resources, top consumers, alerts, disk.

NameImagePorts
webnginx:alpine:443
apiacme/api:1.8:8080
cacheredis:7:6379

Table view

Sortable, groupable, collapsible — when a graph isn't enough.

Compose-awareSearch & filterMulti-networkPassword protectionDark / light themeSingle binary
Under the hood

Two collectors, one live graph.

No agents, no database, no instrumentation of your services. DockGraph reads what Docker already knows and keeps a single source of truth in sync.

docker daemon
compose files
01

Collect

A Docker collector polls the Engine API and watches the live event stream. A compose collector auto-detects and parses any mounted compose files.

docker.sock · *.yml
02

Merge

A state manager unifies both sources into one graph — runtime data always wins — so you also see services defined but not yet started.

runtime ⊕ compose
03

Render

The unified graph is broadcast over WebSocket. The React frontend lays it out with ELK and updates in place as your stack changes.

WebSocket · ELK
Up in 30 seconds

One command.
The whole picture.

One container, mounting the Docker socket read-only. No database, no agents, no config files to write.

  1. Run the container with the socket mounted.
  2. Open localhost:7800 in your browser.
  3. Watch your stack draw itself — and stay live.
docker run -d -p 7800:7800 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --label dockgraph.self=true \
  dockgraph/dockgraph
Safe by default

Built for the production host.

It needs the Docker socket to read state — so it treats that access with the caution it deserves.

Read-only by design

DockGraph can’t start, stop, or change anything. It observes topology — the socket is mounted :ro.

Password protection

Set DG_PASSWORD to gate the UI and WebSocket behind login — Argon2id hashing, JWT sessions.

Bind to localhost

Restrict access with DG_BIND_ADDR=127.0.0.1, or front it with nginx / Caddy / Traefik for TLS.

Self-excluding

DockGraph hides its own container, networks, and volumes from the graph. No noise, no recursion.

Give it 30 seconds

Stop guessing how your stack fits together.

Spin it up, open a tab, and watch your infrastructure map itself in real time. Free and open source.

$docker run … dockgraph/dockgraph