Дайджесты новостей
Вид от первого лица на терминальный экран с интерактивным дашбордом dtop для мониторинга Docker-контейнеров

dtop: терминальный интерактивный дашборд для мониторинга Docker-контейнеров в реальном времени

Сколько раз в день тебе приходится открывать терминал и вбивать команду docker stats? Наверняка десятки. И каждый раз ты упираешься в ее ограничения: длинный бесконечный список контейнеров бежит по экрану, колонки нельзя отсортировать по клику или нажатию стрелок, а чтобы понять, какой процесс внезапно съел всю оперативную память хоста, приходится открывать отдельное окно терминала и вручную парсить идентификаторы через grep.

Разворачивать тяжелый веб-интерфейс вроде Portainer ради пары серверов — явный оверхед по ресурсам, а настраивать сложную связку из Prometheus, cAdvisor и Grafana на небольших проектах часто просто нет времени. Как и в случае с инженерными дашбордами вроде Reslop 0.2.6: дашборд реального времени для ревью и исправления сгенерированного кода, компактные TUI-утилиты прямо в окне терминала дают максимальную скорость реакции при околонулевом потреблении ресурсов.

Амир Раминфар (Amir Raminfar), создатель популярного легковесного просмотрщика логов Dozzle, выпустил решение этой проблемы — терминальный дашборд dtop, написанный на Rust.

Интерактивный TUI вместо слепой статистики

В отличие от стандартного docker stats, dtop построен на базе современных библиотек терминального интерфейса Ratatui и Crossterm. Ты получаешь полноценную интерактивную панель управления:

  • Мгновенная сортировка списка контейнеров по клавишам: по проценту CPU, объему и лимиту памяти (RAM / Limit), дисковому вводу-выводу (Block I/O) и сетевому трафику (Net I/O).
  • Навигация стрелками и мгновенный вход в интерактивный шелл контейнера по одной кнопке (exec /bin/sh или /bin/bash).
  • Просмотр живого потока логов выбранного сервиса прямо в том же окне.
  • Поддержка гиперссылок терминала стандарта OSC 8: если у тебя развернут Dozzle, клик мышью по названию контейнера в современных эмуляторах (iTerm2, Alacritty, Ghostty, WezTerm) открывает браузер с ретроспективными графиками.

Запуск без установки и мониторинг удаленных серверов

Самое приятное — утилиту даже не нужно компилировать локально. Ее можно мгновенно запустить через одноразовый Docker-контейнер, пробросив стандартный сокет:

# Мгновенный запуск интерактивного дашборда
docker run --rm -it \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/amir20/dtop:latest

Но настоящая сила dtop раскрывается, когда у тебя не один сервер, а несколько виртуалок: стейджинг, продакшен, база данных. Утилита поддерживает мультихостовый режим прямо из коробки через стандартные SSH-туннели без необходимости устанавливать агентов на удаленные машины:

# Мониторинг локального Docker и удаленного продакшен-узла по SSH
dtop \
  --host unix:///var/run/docker.sock \
  --host ssh://deploy@production-node-1.example.com:22

Ты можешь свободно переключаться между серверами горячими клавишами, видя целостную картину инфраструктуры в едином окне терминала.

Установка бинарника в систему

Если ты предпочитаешь держать утилиту всегда под рукой в сессии tmux, установи официальный бинарник через готовый скрипт:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/amir20/dtop/releases/latest/download/dtop-installer.sh | sh

Потребление оперативной памяти самим процессором dtop составляет всего около 15–20 МБ, что делает его практически невесомым для рабочего ноутбука.