DockScope

August 5, 2026 ยท View on GitHub

npm version Docker Image CI License: MIT

See your Docker stack instead of listing it.

DockScope draws your containers as a live 3D dependency graph, then lets you dig into any one of them: logs, metrics, a shell, and a guess at why it died.

DockScope demo

Run it

You need Docker running. That is the only prerequisite. Either command below serves the dashboard at http://localhost:4681, with nothing to configure and no account to make.

Docker

The image is published at ghcr.io/manuelr-t/dockscope.

docker run --name dockscope --restart unless-stopped -p 4681:4681 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v dockscope-data:/data \
  ghcr.io/manuelr-t/dockscope
docker-compose.yml
services:
  dockscope:
    image: ghcr.io/manuelr-t/dockscope
    container_name: dockscope
    restart: unless-stopped
    ports:
      - '4681:4681'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dockscope-data:/data

volumes:
  dockscope-data:

dockscope-data is what keeps your access token and installed plugins. Without it they sit in the container's writable layer and vanish the next time you recreate the container, pulling a new image for instance. See Where state lives.

Compose project management (up and down) is the one feature unavailable in a container, since it cannot reach your host's compose files.

With Node

No container, and it opens your browser for you:

npx dockscope up

Or npm install -g dockscope for a permanent dockscope command. This route can manage Compose projects, since it runs on the host. Every flag it takes, including -H to point at a remote Docker daemon, is in dockscope up options.

What you can do with it

Read the whole stack at a glance

Compose stack rendered as a 3D graph, with cache sized largest because everything depends on it

Containers are spheres, coloured by health and wired together by depends_on arrows and shared networks. Size is not decorative: it scales with how central a container is, so the thing everything leans on is visibly the biggest. Compose projects sit in their own enclosure, so a stack reads as one thing.

Search by name or image, filter by running, stopped or unhealthy, and colour the links by network when you need to see the wiring rather than the workload.

A container just died. Why?

Info tab showing status, image, id, ports, networks and live CPU and memory

DockScope reads the exit code, checks whether the kernel OOM-killed it, and pulls the last log lines, then puts the likely cause in the sidebar instead of making you piece it together from docker inspect and docker logs.

Spikes get caught the same way. CPU and memory are watched for outliers, so a container that starts misbehaving pulses on the graph and raises an alert rather than waiting for you to go looking.

What breaks if I take this down?

Select a node and press I. Everything that depends on it lights up and the rest of the graph dims. Useful before a restart, and useful when something is already broken and you want the blast radius.

What is actually going on in there?

Exec tab with an interactive shell running redis-cli

Every container opens a sidebar of tabs: live logs with colour and in-log search, an interactive shell, env vars with secrets masked, labels, mounts, running processes, and the filesystem diff against the image.

Environment and labelsProcesses
Env tab with environment variables and Compose labelsProcesses running inside the container
Filesystem diffLogs
Filesystem changes against the image, added, changed and deletedLive log stream with in-log search

Start, stop, restart, pause, kill and remove are all there, with a confirmation step on the destructive ones. Whole Compose projects go up and down from the project manager.

Something broke last night and you missed it

Hit REC and DockScope records the graph, events and metrics into a JSON file. Load that file on any other DockScope instance and replay it with a scrubber, event markers and 1-8x speed. Live updates and actions are disabled during replay, so a recording is safe to hand to someone else.

For a written postmortem, export the current view as PNG or SVG.

It is not only Docker

Kubernetes ships as an official plugin that talks to your cluster directly, with no kubectl needed. Deployments, StatefulSets, DaemonSets, Pods, Services, Ingresses and HPAs render next to your containers, each pod attached to the controller that owns it, with the same sidebar: metrics, env, logs and a shell. Rollout restart, scale and delete included.

Install it from the Plugins panel, or write your own.

Keyboard shortcuts

KeyAction
/ or Ctrl+KFocus search
EscapeClose panel, clear search
FZoom to fit
RReset camera
CCenter on selected node
IToggle impact view
SpacePlay or pause replay
?Show this list

Is it safe to run?

On your own machine, yes, and that is the default: DockScope listens on localhost only, and websites you visit cannot reach it.

Two things to know before you expose it anywhere:

  • It controls your Docker daemon, including shell access to containers. Treat access to DockScope as access to the host.
  • The first time you open a reachable instance, it offers to set an access token. Take it. If you already run Authelia, Authentik, oauth2-proxy or Cloudflare Access, DockScope can use that instead.

SECURITY.md has the full picture.

Documentation

GuideWhat is in it
ConfigurationEvery CLI flag, environment variable and state file
SecurityAccess tokens, reverse proxy auth, the threat model
HTTP APIEvery endpoint, and the WebSocket messages
Writing pluginsBuild your own data source, panel or action
Publishing pluginsPackage, sign and distribute one through a catalog
Operating pluginsLoading, permissions, health and quarantine
ContributingDevelopment setup and how to send a PR
RoadmapWhere this is going, and what needs doing

Contributing

Contributions are welcome, and there is a short list of issues tagged good first issue that are self-contained enough to pick up cold. Larger open work is tagged help wanted, and ROADMAP.md groups it all by theme.

git clone https://github.com/ManuelR-T/dockscope.git
cd dockscope
npm install
npm run dev

CONTRIBUTING.md covers the rest. Bug reports count too.

Built with Svelte 5, Three.js and Express. No account, no telemetry, no cloud.

License

MIT