← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися знімати базові метрики з контейнерів і готувати їх до інтеграції з моніторингом.
Крок 1. Запустити кілька різних контейнерів.
Команда: docker run -d --name cpu49 busybox sh -c "while true; do :; done"; docker run -d --name io49 nginx
Крок 2. Відкрити docker stats у окремому вікні.
Команда: docker stats
Пояснення: у реальному часі видно cpu, памʼять, мережу і дискову активність.
Крок 3. Звернути увагу на ліміти ресурсів.
Пояснення: для контейнерів без лімітів використовуються ресурси хоста.
Крок 4. Запустити docker stats тільки для одного контейнера.
Команда: docker stats cpu49
Крок 5. Згенерувати додаткове навантаження на io49.
Пояснення: виконай кілька запитів curl до nginx і подивися на мережеві та cpu метрики.
Крок 6. Ознайомитися з форматом виводу docker stats --no-stream --format.
Команда: docker stats --no-stream --format "{{.Name}} {{.CPUPerc}} {{.MemUsage}}"
Пояснення: це зручно для парсингу зовнішніми скриптами.
Крок 7. Написати невеликий скрипт який періодично знімає метрики у текстовий файл.
Пояснення: цей файл потім може читати агент моніторингу.
Крок 8. Оцінити наскільки точні ці метрики для прод.
Пояснення: docker stats підходить для базового моніторингу але не заміняє повноцінні експортeри.
Крок 9. Переглянути варіанти використання cAdvisor або node exporter з container метриками.
Пояснення: занотуй які метрики вони дають понад docker stats.
Крок 10. Міні звіт.
Завдання: опиши мінімальний набір метрик контейнерів який ти вважав би обовʼязковим у прод кластері.