If you find yourself constantly context-switching between terminal windows to manage Docker containers, or struggling to recall the right flags for a docker rm or docker logs command, LazyDocker may be worth adding to your workflow. Created by Jesse Duffield and written in Go using the gocui library, LazyDocker is an open-source terminal user interface (TUI) for both Docker and Docker Compose.
What Problem Does LazyDocker Solve?
Docker’s CLI is powerful, but day-to-day container management often means juggling multiple terminal sessions, remembering long command strings, and manually piecing together logs and resource metrics. LazyDocker consolidates all of this into a single, always-visible terminal window.
As the project creator describes in the GitHub README:
“Memorising docker commands is hard. Memorising aliases is slightly less hard. Keeping track of your containers across multiple terminal windows is near impossible. What if you had all the information you needed in one terminal window with every common command living one keypress away (and the ability to add custom commands as well). Lazydocker’s goal is to make that dream a reality.”
Key Features
- Full keyboard and mouse support — navigate the UI without leaving the terminal; keybindings are viewable and remappable.
- Custom commands and key rebinding — extend LazyDocker beyond its defaults by defining your own commands in the config file.
- Real-time metrics with ASCII graphs — visualize CPU and memory usage for containers directly in the terminal.
- Log viewer — tail logs for any container or Docker Compose service without a separate terminal window.
- Container lifecycle management — restart, stop, remove, or rebuild containers and services with a single keypress.
- Disk space cleanup — identify and remove containers consuming unnecessary disk space.
- Image layer inspection — view ancestor layers of Docker images.
- Customizable colors and high-contrast mode — adapt the UI to your terminal theme.
- Docker Compose support — manage multi-container applications alongside standalone containers in the same interface.
Prerequisites and Installation
To run LazyDocker, you need:
- Docker — the project recommends running the latest stable version.
- Docker Compose v1.23.2 or newer (optional, required only if you manage Compose projects).
- Go 1.8 or newer (required if building from source).
LazyDocker can be installed in several ways:
- Binary release — download a pre-built binary directly from the GitHub releases page.
- Homebrew (macOS/Linux) — install via
brew install lazydocker. - AUR (Arch Linux) — available through an AUR package manager such as
yayorparu. - Go install — build from source using
go install github.com/jesseduffield/lazydocker@latest(syntax may vary by Go version).
Configuration
LazyDocker is customizable through a YAML configuration file. Options include defining custom commands, adjusting graph display settings, changing color themes, and remapping keyboard shortcuts. Refer to the official configuration documentation on GitHub for a full reference of available fields.
See It in Action
Jesse Duffield published a demo video walking through LazyDocker’s interface and core features. Watching it is the quickest way to judge whether the tool fits your workflow before installing it.
Contributing and Related Projects
LazyDocker is an active open-source project. If you encounter a bug or want a feature added, the project welcomes issues and pull requests on GitHub at github.com/jesseduffield/lazydocker.
If you find the terminal-UI approach useful for Docker, Jesse Duffield’s LazyGit applies the same philosophy to Git. It is a terminal UI for git commands, also written in Go, and available at github.com/jesseduffield/lazygit.
Is LazyDocker Right for You?
LazyDocker is best suited for developers and DevOps engineers who:
- Work primarily in the terminal and prefer not to switch to a browser-based UI such as Portainer.
- Manage multiple containers or Compose stacks simultaneously and want a consolidated view.
- Want faster access to logs and metrics without remembering exact CLI flags.
- Are comfortable with keyboard-driven workflows.
If your team already uses Docker Desktop’s built-in GUI or a full orchestration platform like Kubernetes with a dedicated dashboard, LazyDocker’s value proposition is narrower — but for local development and single-host Docker environments, it is a lightweight and fast alternative.