docker-dash

module
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2026 License: MIT

README

docker-dash

Go version Tests Lint License

A keyboard-first Docker dashboard for the terminal.

Manage containers, images, volumes, networks, and compose projects without leaving your shell.

docker-dash overview

Why docker-dash?

Switching between Docker commands and a GUI breaks focus. docker-dash keeps the feedback loop tight with a fast terminal interface for inspecting, filtering, and managing your Docker environment.

  • Stay in the terminal instead of bouncing between tools
  • Troubleshoot faster with logs, details, and exec access close at hand
  • Work with local or remote Docker hosts, including SSH-based setups
  • Manage compose projects alongside containers, images, volumes, and networks
  • Develop without a Docker daemon thanks to the built-in mock client fallback

What you can do

  • Browse and manage containers, images, volumes, networks, and compose projects
  • Inspect container logs, stats, details, and files interactively
  • Start, stop, restart, and remove containers and compose projects
  • Exec into running containers without leaving the TUI
  • Filter resources quickly and inspect image layers
  • Clean up unused resources with prune actions
  • Check for image updates from the registry on a configurable interval and pull updates in one keystroke

Quick start

Install

Homebrew:

brew tap GustavoCaso/tap
brew install docker-dash

Go:

go install github.com/GustavoCaso/docker-dash/cmd/docker-dash@latest

Build from source:

make build
Run
docker-dash
A few things to try
  1. Move between sections with ← / →
  2. Press tab to switch focus between the list and the section panel
  3. Use ↑ / ↓ to move in the focused area
  4. Filter the current list with /
  5. Refresh with r and open help with ?
  6. Manage resources with contextual actions such as s, D, P, +, and c

Great fit for

  • Developers who live in the terminal
  • Docker users who want a faster feedback loop than memorizing many commands
  • Remote and homelab workflows where SSH Docker hosts are common
  • Anyone who wants quick visibility into running services, logs, and container state

Common workflows

Troubleshoot a container

Use the containers view to inspect logs and details, restart with ctrl+R, or start and stop with s.

Clean up Docker resources

Prune unused containers, images, networks, and volumes directly from the relevant section with P.

Connect to a remote Docker host

Pass a Docker host on the command line:

docker-dash --docker.host ssh://user@example-host

Or set it in your config file for everyday use.

Configuration

By default, docker-dash looks for a config file at ~/.config/docker-dash/config.toml.

[docker]
# Docker daemon URL. Accepts tcp, unix, and ssh schemes.
host = "ssh://pi5@pi5"

[refresh]
# Auto-refresh interval
# Examples: "500ms", "5s", "1m", "2m30s"
interval = "10s"

[debug]
enabled = false

[update_check]
# Check the remote registry for newer image versions on a configurable interval.
# When an update is available, a ⬆ icon appears next to the image in the list.
# Press "u" in the Images section to pull the update directly.
enabled = false
# Polling interval. Examples: "30m", "1h", "6h"
interval = "1h"

[logs]
# Stream logs in real-time (follow mode). Set to false to fetch a static snapshot.
follow = true
# Number of log lines to show from the end of the log. Use "all" to show everything.
tail = "100"
# Prepend timestamps to each log line.
timestamps = false
# Show logs since a relative duration.
# "10m", "2h", "24h".
# Empty string means show all available logs.
since = "2h"
CLI flags
Flag Description
--config Path to config file (default: ~/.config/docker-dash/config.toml)
--docker.host Docker daemon URL (overrides config file)
--refresh.interval Auto-refresh interval (overrides config file)
--debug Enable debug logging (overrides config file)

CLI flags take precedence over config values.

Debug mode

When debug mode is enabled, docker-dash writes a debug log file to the system temporary directory.

Keybindings

Press ? in the app to see the full keymap. The most commonly used bindings are:

Key Action
← / → Switch section
↑ / ↓ Move in focused area (list or panel)
tab Toggle focus between list and panel
shift+← / shift+→ Switch panels
y Copy ID to clipboard
/ Filter
r / ctrl+r Refresh current view / refresh all
? Toggle help
q Quit

When focus is on the panels the navigations keys ←→↑↓ are redirected to the panel. If you want to change sections you need to swicth the focus back to the lits using the tab

Contextual actions depend on the active section. For example:

  • s starts or stops containers and compose projects
  • D deletes containers and networks, or brings compose projects down
  • P prunes unused resources
  • + pulls an image
  • c creates and runs a container from an image
  • u pulls an image update (Images section) or brings a compose project up (Compose section)
Full keybindings by section
Images
Key Action
d Delete image
P Prune all unused images
c Create and run container
+ Pull image
u Pull image update (requires update_check.enabled = true; ⬆ icon indicates update available)
Containers
Key Action
D Delete container
P Prune unused container
p pause/unpause container
s Start/stop
ctrl+R Restart
Volumes
Key Action
d Delete volume
P Prune all unused volumes
Networks
Key Action
P Prune unused networks
D Delete network
Compose
Key Action
u Compose up
D Compose down
s Start/stop project
ctrl+R Restart project
Global
Key Action
r Refresh
ctrl+r Refresh all

Development

make test       # Run tests
make lint       # Run linter
make build      # Build binary

Tests use a mock Docker client, so no Docker daemon is required.

Requirements

  • Go 1.26+
  • Docker (optional — falls back to mock data without it)

Directories

Path Synopsis
cmd
docker-dash command
internal
ui
ui/sections/base
Package base provides a reusable Section struct that consolidates the bubbles/list setup and filter-mode handling that is otherwise duplicated across every section package.
Package base provides a reusable Section struct that consolidates the bubbles/list setup and filter-mode handling that is otherwise duplicated across every section package.
ui/theme
Package theme provides Docker Desktop inspired colors, Nerd Font icons, and Lip Gloss styles for the docker-dash TUI application.
Package theme provides Docker Desktop inspired colors, Nerd Font icons, and Lip Gloss styles for the docker-dash TUI application.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL