Skip to content
Built with Rust v0.7.6

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.

dtop
§ 01 / Capabilities

Three things,
done well.

No dashboards to configure, no agents to install, no plans to choose. Open the terminal, see the containers, close the terminal.

01
topology / ssh · tcp · tls · local

Multi-Host Support.

Monitor containers across local, SSH, and TCP connections simultaneously from a single terminal session.

02
telemetry / ema · α=0.3 · 500ms

Real-Time Metrics.

Track CPU, memory, and network I/O with smooth exponential moving averages. Color-coded at a glance.

03
footprint / rust · minimal alloc

Fast & Lightweight.

Built with Rust for minimal CPU and memory footprint. Starts instantly, runs silently in the background.

§ 02 / Install

Pick a package
manager.

Homebrew, Docker, Cargo, Nix, or the install script. One line. Same binary. Pick whatever you already have.

Homebrew
brew install dtop
Docker
docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop
Install Script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/amir20/dtop/releases/latest/download/dtop-installer.sh | sh
Nix
nix run github:amir20/dtop
Install from Source
cargo install dtop
then run $dtop_
§ 03 / Reference

Every flag,
documented.

Sourced from --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
--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)

tip: combine multiple hosts and filters. dtop --host local --host ssh://user@server -f status=running

§ 04 / Configure

One YAML file,
five sections.

Hosts, icons, sort, columns, and the show-all toggle. CLI flags always win when they conflict.

Config File Locations

Searched in priority order. First found wins.

1 ./config.yaml or ./config.yml, ./.dtop.yaml, ./.dtop.yml
2 .config/dtop/config.yaml or .config/dtop/config.yml
3 .dtop.yaml or .dtop.yml
Hosts
# == 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
# == Icons ==
# Icon style for the UI.
# Possible values: unicode, nerd (requires Nerd Font)
icons: unicode
Show All
# == All ==
# Whether to show all containers including stopped, exited, and paused.
# Possible values: true, false
all: false
Sort
# == Sort ==
# Default sort field for the container list.
# Possible values: uptime, name, cpu, memory
sort: uptime
Columns
# == 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.

§ 05 / Shortcuts

Hands stay
on the keyboard.

Eight bindings cover navigation, search, sort, and column visibility. Press ? anywhere for the in-app overlay.

?
Show help overlay
s
Open sort selector
c
Column visibility
Enter
Open container action menu
View container logs
Return to container list
/
Search and filter containers
a
Toggle showing all containers

tip: connect to remote hosts with dtop --host ssh://user@host