Multi-Host Support
Monitor containers across local, SSH, and TCP connections simultaneously from a single terminal session.
dtop streams live CPU, memory, network and disk metrics from local, SSH, TCP and TLS Docker daemons into a single table in your terminal.
$ brew install dtop | state | name | host | cpu | mem | net tx | net rx | pids | up |
|---|---|---|---|---|---|---|---|---|
| ● running | postgres-primary | ops@db-eu | █████████░░░ 74% | ███████░░░░░ 61% | 1.2 MB/s | 3.8 MB/s | 41 | 12d |
| ● running | api-gateway | deploy@edge-01 | ██████░░░░░░ 52% | █████░░░░░░░ 38% | 8.4 MB/s | 6.1 MB/s | 27 | 6d |
| ● running | redis-cache | ops@db-eu | ████░░░░░░░░ 31% | ███░░░░░░░░░ 22% | 900 KB/s | 1.4 MB/s | 12 | 12d |
| ● running | nginx-ingress | deploy@edge-01 | ██░░░░░░░░░░ 18% | ██░░░░░░░░░░ 14% | 12.6 MB/s | 9.3 MB/s | 9 | 6d |
| ▲ unhealthy | worker-etl | ops@db-us | ███████████░ 88% | █████████░░░ 79% | 400 KB/s | 200 KB/s | 33 | 4h |
| ● running | grafana | local | █░░░░░░░░░░░ 11% | ███░░░░░░░░░ 27% | 300 KB/s | 600 KB/s | 18 | 21d |
| ● running | prometheus | local | ███░░░░░░░░░ 24% | █████░░░░░░░ 44% | 800 KB/s | 2.2 MB/s | 16 | 21d |
| ○ exited | legacy-cron | ops@db-us | ░░░░░░░░░░░░ 0% | ░░░░░░░░░░░░ 0% | 0 KB/s | 0 KB/s | — | — |
No agents on the machines you're watching, no collector, no account. Point dtop at a socket and it starts drawing.
Monitor containers across local, SSH, and TCP connections simultaneously from a single terminal session.
Track CPU, memory, and network I/O with smooth exponential moving averages. Color-coded at a glance.
Built with Rust for minimal CPU and memory footprint. Starts instantly, runs silently in the background.
Every flag can live in a YAML file. Or press Ctrl-S in the app and dtop saves
your columns, sort and filters for you — keys you set by hand are preserved.
First file found wins. Command-line flags override whatever the file says.
# == 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, pids, net_tx, net_rx, disk_read, disk_write, uptime, restarts # columns: # - status # - name # - id # - host # - compose # - cpu # - memory # - net_tx # - net_rx # - uptime # - restarts
Generated from dtop --help, so
it stays correct as the binary changes.
-H, --host <HOST> Docker host(s) to connect to. Can be specified multiple times.
--host local Connect to local Docker daemon / active Docker context--host unix:///path/docker.sock (Connect to a specific Unix socket)
--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, --all Show 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)Hosts and filters combine — dtop --host local --host ssh://user@server -f status=running
Eight bindings cover the whole surface. Press ? anywhere for the overlay.
macOS and Linux, Intel and ARM. No account, no telemetry.
$ brew install dtop