I Use lazydocker for Everything — Except When I Don't
Source: Dev.to
dockervis – A Minimal Docker Dashboard
I love lazydocker. Honestly, Jesse Duffield built something special — it’s the first thing I install on a new machine. But 90 % of the time I open it I just want to check if my containers are healthy. I don’t need to browse image layers, scroll through compose configs, or dig into volume mounts. I just want the pulse check.
Sometimes lazydocker feels like opening a control room when you only need a dashboard.
So I built dockervis – a terminal dashboard that does one thing: show you what your Docker containers are doing right now and let you act on it with a single key‑press.
The Problem I Was Solving
My typical workflow looks like this:
- Start 4‑5 containers with
docker compose. - Something feels off — API is slow, or a cron job might’ve crashed.
- Open a terminal, type
docker ps, squint at the truncated output.
Copy a container ID, rundocker stats --no-stream. - Realize it was the wrong container.
- Repeat.
docker stats is a firehose. docker ps doesn’t show resource usage. Jumping between them gets old fast when you’re debugging at 2 am.
lazydocker solves this, but it also shows every image, every volume, every compose file — when I just want to know if my app container is eating all the RAM again.
What dockervis Does
npm install -g dockervis
dockervis
The tool launches in fullscreen mode (press q to quit).
The dashboard looks like this:
┌─────────────────────────────────────────────────────────────┐
│ dockervis - Docker Container Dashboard │
├─────────────────────────────────────────────────────────────┤
│ │
│ ● app (running) CPU: 1.2% │
│ ● db (running) Memory: 256 MB / 512 MB (50.0%) │
│ ○ web (exited) Network RX: 1.2 GB │
│ ● redis (running) Network TX: 512 MB │
│ │
└─────────────────────────────────────────────────────────────┘
q: Quit | r: Refresh | s: Stop | R: Restart | d: Delete
Every container, its state, CPU, memory, and network usage are updated live. No mouse needed, no panels to navigate — just the info you care about.
Keyboard Shortcuts That Actually Matter
| Key | What it does |
|---|---|
j / ↓ | Move down |
k / ↑ | Move up |
s | Stop container |
R | Restart container |
d | Delete (exited only) |
r | Force refresh |
q | Quit |
Vim‑style navigation because, well, muscle memory.
Typical flow:
When something’s stuck: j → select → R → restart → done.
When a container exited and you want it gone: k/j → select → d.
Filtering When You Have Too Many Containers
On my work machine I have ~20 containers, many from old projects I forgot to clean up. I don’t need to see all of them.
# Only show running ones
dockervis --filter running
# Focus on specific services
dockervis --include app,db,redis
# Hide the noise
dockervis --exclude test,ci
The --exclude flag is my favorite – it removes test containers I never touch, making the dashboard actually useful.
Exporting Metrics (Because Sometimes You Need Proof)
Sometimes you need to show someone “this container has been eating 80 % CPU for three days,” or you want to log metrics over time.
# JSON export
dockervis --export metrics.json
# CSV if you need to throw it in a spreadsheet
dockervis --export metrics.csv --export-format csv
I use this in CI: run once, dump to JSON, parse with jq in a health‑check script. Not glamorous but it works.
Why TypeScript (And Not Go Like Everyone Else)
Most terminal Docker tools are written in Go — lazydocker, ctop, docui. Nothing wrong with Go, but I write TypeScript all day. When I want to fix something or add a feature, I want to do it in the language I’m fastest in.
dockervis uses:
- dockerode – battle‑tested Docker API client.
- blessed – terminal UI library (the same family that lazydocker uses via tview/bubbletea equivalents).
The result is a tool that TypeScript/Node developers can actually contribute to without learning a new language. Installation is just npm install -g — no Go toolchain needed.
When I Still Reach for lazydocker
dockervis isn’t a full replacement for lazydocker. I still reach for lazydocker when I need to:
- Browse Docker Compose configs
- Inspect image layers
- Manage volumes and networks
- Read container logs in detail
For the 5‑second “is everything okay?” check or the “restart that one container real quick” moment, dockervis is faster and less noisy.
Quick Setup
# Install
npm install -g dockervis
# Make sure you have Docker socket access
sudo usermod -aG docker $USER # (log out and back in)
# Run it
dockervis
Optional tweaks
Change refresh interval (default 2 s):
dockervis --interval 5000 # 5 seconds
Connect to a remote Docker host:
DOCKER_HOST=tcp://192.168.1.100:2375 dockervis
The Code
It’s open source, MIT licensed: github.com/sulthonzh/dockervis
Issues and PRs are welcome. I mainly tested on macOS + Docker Desktop, so Linux and Windows reports are especially appreciated.
Would be helpful.
* Building developer tools is my thing.
Check out my other projects at [github.com/sulthonzh](https://github.com/sulthonzh)