Если вы работаете с Docker, то наверняка знакомы с командой docker stats. Она показывает потребление ресурсов контейнерами, но её вывод… скажем так, не самый удобный. Сегодня расскажу про ctop - инструмент, который превращает мониторинг контейнеров в удовольствие.

Что такое ctop?

ctop - это консольная утилита для мониторинга Docker контейнеров в реальном времени. Представьте себе htop, но для контейнеров. Красивый интерфейс, интерактивное управление и вся нужная информация на одном экране.

Установка

Linux

# Самый простой способ
sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
sudo chmod +x /usr/local/bin/ctop

macOS

brew install ctop

Docker (да, ctop можно запустить в контейнере!)

docker run --rm -ti \
  --name=ctop \
  --volume /var/run/docker.sock:/var/run/docker.sock:ro \
  quay.io/vektorlab/ctop:latest

Основные возможности

1. Красивый интерфейс

Запустите ctop и увидите все контейнеры с их метриками:

  • CPU использование
  • Память (используемая/лимит)
  • Сетевой трафик (RX/TX)
  • Дисковый I/O

2. Горячие клавиши

  • Enter - детальная информация о контейнере
  • l - посмотреть логи контейнера
  • e - exec shell в контейнер
  • s - сохранить текущую конфигурацию
  • q - выход

3. Фильтрация

  • f - фильтр по имени контейнера
  • a - показать/скрыть остановленные контейнеры

4. Сортировка

  • F1-F5 - сортировка по разным параметрам (CPU, память и т.д.)

Продвинутые фичи

Метрики в реальном времени

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

Поддержка Docker Swarm

ctop -scale-header

Покажет, на какой ноде запущен каждый контейнер.

Экспорт метрик

ctop -export-enable

Позволяет экспортировать метрики для внешних систем мониторинга.

Реальные кейсы использования

1. Поиск “прожорливых” контейнеров

Запускаете ctop, сортируете по CPU (F2) или памяти (F3) - и сразу видите, кто съедает все ресурсы.

2. Быстрый дебаг

Контейнер ведёт себя странно? Enter → смотрим детальные метрики, l → проверяем логи, e → заходим внутрь посмотреть, что происходит.

3. Мониторинг во время деплоя

При раскатке новой версии запускаете ctop и в реальном времени видите, как меняется потребление ресурсов.

Лайфхаки

1. Алиас для быстрого запуска

echo "alias ct='ctop'" >> ~/.bashrc

2. Кастомные колонки

ctop -columns="name,cpu,mem,net"

3. Сохранение конфигурации

Настроили вид как нравится? Нажмите s - ctop запомнит настройки.

Альтернативы

  • lazydocker - ещё более навороченный, но тяжелее
  • dry - похожий функционал, другой интерфейс
  • docker stats - встроенная команда, но менее удобная

Итоги

ctop - это must-have инструмент для любого, кто работает с Docker. Установка занимает 30 секунд, а экономит часы при дебаге и мониторинге.

Особенно рекомендую, если:

  • У вас больше 5-10 контейнеров
  • Нужно быстро найти проблемный контейнер
  • Хочется красивый и удобный мониторинг без настройки Prometheus/Grafana

Попробуйте - не пожалеете!