3.1 Команда docker stats
Docker предоставляет встроенный инструмент для мониторинга контейнеров в реальном времени — команду docker stats. Эта команда позволяет отслеживать основные метрики производительности контейнеров, такие как использование CPU, памяти, сети и диска. Давайте рассмотрим, как использовать docker stats, чтобы получить представление о состоянии и производительности ваших контейнеров.
Команда docker stats предоставляет динамическую статистику о работе контейнеров в реальном времени. Она отображает следующие метрики для каждого контейнера:
- CPU %: процент использования CPU контейнером.
- MEM USAGE / LIMIT: использование памяти контейнером и установленный лимит.
- MEM %: процент использования памяти контейнером.
- NET I/O: сетевой трафик (входящий и исходящий).
- BLOCK I/O: количество операций ввода/вывода на диске.
- PIDS: количество процессов, запущенных внутри контейнера.
Основное использование команды docker stats
Запуск команды docker stats без параметров отображает метрики для всех запущенных контейнеров:
docker stats
Пример вывода команды docker stats:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d9b100f2f636 my_nginx 0.07% 1.24MiB / 1.952GiB 0.06% 1.68kB / 0B 0B / 12.3MB 2
fa3f3f3f3f3f my_postgres 2.13% 230.5MiB / 1.952GiB 11.52% 2.12MB / 2.05MB 85.6MB / 45.2MB 10
Мониторинг конкретного контейнера
Вы можете отслеживать метрики для конкретного контейнера, указав его имя или ID:
docker stats my_nginx
3.2 Настройки команды docker stats
Параметры команды docker stats
Команда docker stats поддерживает несколько опций, которые позволяют настроить вывод данных:
--allили-a: отображать метрики для всех контейнеров, включая остановленные.--no-stream: отобразить метрики один раз и завершить выполнение команды.--format: настроить вывод данных с использованием шаблонов.
Пример использования параметра --no-stream
Вывод метрик один раз для всех контейнеров:
docker stats --no-stream
Пример использования параметра --format
Форматированный вывод данных:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Пример вывода:
CONTAINER ID CPU % MEM USAGE / LIMIT
d9b100f2f636 0.07% 1.24MiB / 1.952GiB
fa3f3f3f3f3f 2.13% 230.5MiB / 1.952GiB
3.3 Практическое использование docker stats
Пример 1: отслеживание нагрузки на сервер
Вы можете использовать docker stats для мониторинга контейнеров на сервере и выявления контейнеров с высокой нагрузкой на CPU или память. Это поможет вам оптимизировать использование ресурсов и улучшить производительность приложений.
docker stats
Пример 2: мониторинг конкретного контейнера во время тестирования
При тестировании новых версий приложений или изменении конфигураций вы можете отслеживать метрики конкретного контейнера, чтобы убедиться в отсутствии негативного влияния на производительность.
docker stats my_test_container
Пример 3: интеграция с системами мониторинга
Вы можете интегрировать вывод docker stats с внешними системами мониторинга, используя опцию --format для создания формата вывода, совместимого с вашим инструментом мониторинга.
docker stats --no-stream --format "{{.Container}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"
Ограничения команды docker stats
Хотя docker stats предоставляет полезные метрики в реальном времени, у него есть некоторые ограничения:
- Ограниченные метрики: команда отображает только основные метрики и не предоставляет детальную информацию о состоянии контейнеров.
- Ручное использование: docker stats удобно использовать вручную, но для автоматизированного мониторинга и алертинга лучше использовать специализированные инструменты, такие как Prometheus и Grafana.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ