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.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ