Docker's built-in CLI works, but managing containers means juggling docker ps, docker logs, docker stats, docker-compose up, and docker images across multiple terminal windows. These tools consolidate that into visual interfaces and single-purpose utilities.
Every tool links to its clihub listing with install commands.
Container Management
TUI tools that give you a visual dashboard for running containers, replacing the need to juggle multiple docker commands in separate terminals.
lazydocker — Docker TUI
A full terminal UI for Docker. See running containers, images, volumes, and networks in a single view. Tail logs in real time, view container stats, restart services, and prune unused images — all with keyboard shortcuts. It's what lazygit is to Git, but for Docker.
This is the tool most developers install first when they want a better Docker experience.
brew install lazydocker
ctop — Container Top
Like top but for containers. Shows CPU, memory, network, and I/O usage per container in a live-updating terminal UI. Useful for quick performance monitoring when you don't need the full lazydocker interface.
brew install ctop
dry — Docker Manager
Another Docker TUI, focused on Docker and Docker Swarm management. Includes container and service management, image management, and network inspection. Less popular than lazydocker but supports Docker Swarm operations if you use that.
brew install dry
Image Analysis
Docker images can be surprisingly large. These tools help you understand why and fix it — saving disk space, speeding up deployments, and reducing attack surface.
dive — Image Layer Explorer
Explore Docker image layers interactively. See what each layer adds, how much space it takes, and what files changed. Essential for optimizing image size — dive shows you exactly which layers are bloated and why.
Use it to audit any image:
dive nginx:latest
brew install dive
docker-slim — Image Optimizer
Analyzes your Docker image and produces a smaller, more secure version by removing unnecessary files, packages, and layers. Can reduce image size dramatically — a 300MB Node.js image might shrink to 30MB.
brew install docker-slim
Dockerfile Quality
Catch issues before they ship. These tools lint your Dockerfiles and scan built images for security problems.
hadolint — Dockerfile Linter
Lints Dockerfiles against established practices. Catches issues like using latest tags, missing version pins in apt-get install, running as root unnecessarily, and suboptimal layer caching. Integrates with CI/CD pipelines.
brew install hadolint
hadolint Dockerfile
dockle — Image Security Scanner
Scans built Docker images for security issues and CIS benchmark compliance. Checks for things like running as a non-root user, setting HEALTHCHECK, and avoiding sensitive data in environment variables.
brew install dockle
dockle nginx:latest
Docker Compose Tools
If you work with multi-container setups, these tools help you manage Compose stacks.
lazydocker (Compose Support)
lazydocker natively understands Docker Compose. It shows compose services grouped together, lets you restart individual services, and tails logs from specific containers in a compose stack. Run lazydocker in a directory with a docker-compose.yml and it picks up the stack automatically.
docker-compose-viz
Generates a visual graph of your Docker Compose services and their relationships. Useful for documenting complex multi-service architectures. Outputs DOT format for rendering with Graphviz.
Comparison Table
| Tool | What it does | Use case |
|---|---|---|
| lazydocker | Full Docker TUI | Daily container management |
| ctop | Container monitoring | Quick performance checks |
| dive | Image layer analysis | Optimizing image size |
| docker-slim | Image optimization | Reducing image size |
| hadolint | Dockerfile linting | CI/CD quality checks |
| dockle | Image security scanning | Security compliance |
Where to Start
-
lazydocker — install it, run
lazydocker, and you'll immediately see why people use it over raw Docker commands. This is the one tool every Docker user should have. -
dive — run
diveon your largest image. You'll likely find layers you can optimize or remove entirely. -
hadolint — add it to your CI pipeline to catch Dockerfile issues before they ship.
For a complete terminal setup including Docker tools, see The Developer's Terminal Setup Guide. For the full list of tools, see Best CLI Tools for Developers.
FAQ
Is lazydocker safe to use in production?
lazydocker connects to the Docker daemon like any Docker CLI tool. It can start, stop, and remove containers — so use the same caution you would with docker rm. It doesn't modify images or Dockerfiles. For production monitoring, it's a convenient viewer, but dedicated monitoring tools (Prometheus, Grafana) are more appropriate for production alerting.
Can I use these tools with Podman instead of Docker?
lazydocker and ctop are Docker-specific — they talk to the Docker daemon. Some can work with Podman via its Docker-compatible socket (podman system service), but support varies. dive works with any OCI image, so it works with Podman-built images. hadolint and dockle analyze files and images directly, so they work regardless of runtime.
How do I reduce my Docker image size?
Start with dive to see which layers are largest. Common fixes: use a smaller base image (Alpine instead of Ubuntu), combine RUN commands to reduce layers, add a .dockerignore file, remove caches in the same layer they're created (apt-get clean && rm -rf /var/lib/apt/lists/*), and use multi-stage builds. docker-slim can automate some of this.
Are there Kubernetes-specific CLI tools?
Yes, but they're a different category. Tools like kubectl, k9s (a Kubernetes TUI similar to lazydocker), kubectx, and stern handle Kubernetes specifically. The tools in this article focus on Docker containers and images. Browse Kubernetes tools on clihub.
Browse all Docker and DevOps tools on clihub — the directory for discovering command line tools.