GitHub - pivovarit/tdocker: minimalistic terminal UI for everyday Docker operations

3 min read Original article ↗

A minimalistic terminal UI for everyday Docker operations. Not a dashboard, not a full Docker management suite - just the handful of things you actually do dozens of times a day, each a single keypress away: tail logs, exec into a shell, restart a container, copy an ID.

tdocker demo

Philosophy

tdocker is intentionally small. It covers the most common Docker workflows and nothing more. No plugin system, no YAML configs, no container creation wizards. If an operation isn't something you'd do multiple times a week, it probably doesn't belong here.

Getting started

Install with Homebrew (macOS or Linux):

brew install pivovarit/tap/tdocker

Linux

Grab a prebuilt binary (amd64):

curl -sSL https://github.com/pivovarit/tdocker/releases/latest/download/tdocker_linux_amd64.tar.gz | tar xz
sudo mv tdocker /usr/local/bin/

For arm64, swap amd64 for arm64.

Or install a native package from the latest release:

Distro Package
Debian / Ubuntu .deb
Fedora / RHEL / openSUSE .rpm
Alpine .apk
Arch .pkg.tar.zst

From source

Install with go install:

go install github.com/pivovarit/tdocker@latest

Make sure $GOPATH/bin is on your $PATH (the default is ~/go/bin):

export PATH="$PATH:$(go env GOPATH)/bin"

Add the line above to your shell profile (.bashrc, .zshrc, etc.) to make it permanent.

Then launch:

Or run directly from source:

git clone https://github.com/pivovarit/tdocker && cd tdocker && go run .

Built & verified on

Environment Details
macOS 26.3 (Sequoia), arm64 (Apple Silicon), Docker Desktop 29.2.1
Linux Ubuntu (CI), unit + Testcontainers integration tests on every push
Go 1.26

Released binaries are built for Linux and macOS on both amd64 and arm64.

Clipboard integration is supported on macOS (pbcopy), Windows (clip), Linux/X11 (xclip), Linux/Wayland (wl-copy), and SSH/headless via OSC 52.

Keybindings

Key Action
/ / j / k Navigate
g / G Jump to top / bottom
/ Expand inline details / collapse
/ Filter containers
A Toggle all / running only
l View logs
e Exec into container (sh)
x Open debug shell (docker debug)
i Inspect container (image, env, ports, mounts, networks)
I Diagnose container (state, events, logs, health, config)
t Show stats
v Stream Docker events
c Copy container ID to clipboard
S Start / Stop (toggles by state)
R Restart container
P Pause / Unpause
D Delete container (stopped only)
N Rename container
r Refresh
X Switch Docker context
? Show help
q / Ctrl+C Quit

Tips & Hints

  • Navigate while filtering - press / while typing a filter to accept it and immediately navigate the list
  • q clears filters first - if a filter is active, q clears it instead of quitting; press again to exit
  • Inline details - press on any container to expand port bindings and network info as navigable rows inline; collapses them
  • Compose groups - and also expand and collapse Compose project groups
  • Auto-scroll in logs - logs auto-scroll as new lines arrive; scroll up to pause, scroll back to the bottom to resume
  • Smart actions - S stops running containers and starts stopped ones; R restarts running containers and starts stopped ones
  • Shell detection - e auto-detects available shells; for distroless/scratch images, use x (docker debug) instead
  • i vs I - i shows the classic inspect summary (image, env, ports, mounts); I opens the diagnostic panel with container state, recent events, log tail, and healthcheck results