A terminal UI for managing Docker, written in Rust with Ratatui.
I use Docker daily and got tired of typing docker ps, docker logs -f, docker exec -it ... sh a hundred times a day. Wanted something like k9s but for plain Docker, so I built this. It lets you browse containers, images, volumes and networks, tail logs, drop into a container shell and watch resource usage - all from the terminal.
██████╗ ██████╗ ██████╗███████╗███████╗███████╗
██╔══██╗██╔═══██╗██╔════╝██╔════╝██╔════╝██╔════╝
██║ ██║██║ ██║██║ ███████╗█████╗ █████╗
██║ ██║██║ ██║██║ ╚════██║██╔══╝ ██╔══╝
██████╔╝╚██████╔╝╚██████╗███████║███████╗███████╗
╚═════╝ ╚═════╝ ╚═════╝╚══════╝╚══════╝╚══════╝
- Containers - start / stop / restart / delete, with status colours
- Images - list, delete, prune
- Volumes and networks - list and manage
- Logs - live tailing with timestamps, word wrap and filtering
- Shell - exec into a running container without leaving the TUI
- Stats - live CPU / memory / network / disk per container
- Search -
/to filter anything on screen
Works on Linux, macOS and Windows.
Needs a recent stable Rust toolchain and Docker running locally.
git clone https://github.com/Xczer/docsee-tui.git
cd docsee-tui
cargo build --release
# binary lands in target/release/docseeOr install straight from the source tree:
cargo install --path .# default docker socket
docsee
# remote docker over tcp
docsee --docker-host tcp://remote-host:2375
# over ssh
docsee --docker-host ssh://user@remote-hostIt also picks up the usual DOCKER_HOST / DOCKER_TLS_VERIFY / DOCKER_CERT_PATH env vars if they are set.
Global
| Key | Action |
|---|---|
←/→ |
switch tabs |
↑/↓ |
move in list |
Enter |
select |
Esc |
go back |
q |
quit |
c |
help / cheatsheet |
Containers
| Key | Action |
|---|---|
u |
start |
d |
stop |
r |
restart |
D |
delete |
l |
logs |
e |
shell |
s |
stats |
/ |
search |
Logs viewer
| Key | Action |
|---|---|
f |
follow on/off |
t |
timestamps |
w |
word wrap |
c |
clear |
PgUp/PgDn |
page |
Full list is inside the app, just hit c.
src/
├── app.rs # main loop, tab routing, key dispatch
├── docker/ # bollard wrapper - containers, images, volumes, networks, system
├── events/ # keyboard / timer event handling
├── ui/ # per-tab views + logs/shell/stats viewers
└── widgets/ # small reusable bits (tables, modals)
Async everywhere via Tokio so the UI never blocks on a Docker call.
cargo run # run against local docker
cargo fmt
cargo clippy
cargo testConnection error - make sure the daemon is up (docker info) and you can read the socket (ls -la /var/run/docker.sock).
Colours look off - check your terminal, TERM=xterm-256color docsee usually fixes it. Needs at least an 80x24 terminal.
Built on top of Ratatui, Bollard and Tokio. Design ideas borrowed shamelessly from k9s.
MIT - see LICENSE.