Docker Monitoring
In Your Terminal
A real-time TUI for monitoring Docker containers across multiple hosts. Track CPU, memory, and network metrics — all from your terminal.
Blazing fast. Minimal resource usage.
Multi-Host Support
Monitor containers across local, SSH, and TCP connections simultaneously from a single terminal session.
Real-Time Metrics
Track CPU, memory, and network I/O with smooth exponential moving averages. Color-coded at a glance.
Fast & Lightweight
Built with Rust for minimal CPU and memory footprint. Starts instantly, runs silently in the background.
Get Started
Choose your preferred installation method
$ brew install dtop $ docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop $ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/amir20/dtop/releases/latest/download/dtop-installer.sh | sh $ nix run github:amir20/dtop $ cargo install dtop Then run:
Command Line
All the flags you need to get started
-H, --host <HOST>Docker host(s) to connect to. Can be specified multiple times.
--host local Connect to local Docker daemon--host ssh://user@host Connect via SSH--host ssh://user@host:2222 Connect via SSH with custom port--host tcp://host:2375 Connect via TCP to remote Docker daemon--host tls://host:2376 Connect via TLS--host local --host ssh://user@server1 --host tls://server2:2376 Multiple hosts-i, --icons <ICONS>Icon style to use for the UI
--icons unicode Standard Unicode icons (default, works everywhere)--icons nerd Nerd Font icons (requires Nerd Font installed)-f, --filter <FILTER>Filter containers (can be specified multiple times)
--filter status=running --filter name=nginx --filter label=com.example.version=1.0 --filter ancestor=ubuntu:24.04 -a, --allShow all containers (default shows only running containers)
-s, --sort <SORT>Default sort field for container list
--sort uptime Sort by container uptime/creation time (default, newest first)--sort name Sort by container name (alphabetically)--sort cpu Sort by CPU usage (highest first)--sort memory Sort by memory usage (highest first)tip — Combine multiple hosts
and filters: dtop --host local --host ssh://user@server -f status=running
Configuration
Configure dtop with a YAML file for persistent settings
Config File Locations
Searched in priority order — first found wins
./config.yaml or ./config.yml, ./.dtop.yaml, ./.dtop.yml.config/dtop/config.yaml or .config/dtop/config.yml.dtop.yaml or .dtop.yml# == Hosts == # Docker host(s) to connect to. You can specify multiple hosts to monitor # them simultaneously. # Possible values for host: local, ssh://user@host, tcp://host:port, tls://host:port # Optional fields per host: dozzle (URL), filter (list of Docker filters) hosts: - host: local # - host: ssh://user@server1 # dozzle: https://dozzle.server1.com/ # filter: # - status=running # - label=environment=production # - host: tcp://192.168.1.100:2375 # - host: tls://192.168.1.100:2376
# == Icons == # Icon style for the UI. # Possible values: unicode, nerd (requires Nerd Font) icons: unicode
# == All == # Whether to show all containers including stopped, exited, and paused. # Possible values: true, false all: false
# == Sort == # Default sort field for the container list. # Possible values: uptime, name, cpu, memory sort: uptime
# == Columns == # Column visibility and order. # List only the columns you want to see, in the order you want them. # Omitted columns are hidden. Press 'c' in the UI to toggle columns interactively. # Possible values: status, name, id, host, compose, cpu, memory, net_tx, net_rx, uptime, restarts # columns: # - status # - name # - id # - host # - compose # - cpu # - memory # - net_tx # - net_rx # - uptime # - restarts
tip — CLI arguments always take precedence over config file values
Keyboard Shortcuts
Navigate everything from the keyboard
tip — Connect to remote hosts with dtop --host ssh://user@host