ℹ️ Когда у вас на сервере работает множество контейнеров, бывает трудно быстро понять, какие из них потребляют больше всего ресурсов (CPU, RAM, диск). Стандартная команда docker stats выводит статистику в реальном времени, но часто нужен более простой и быстрый способ получить сводку.
-
1. Поиск контейнеров с наибольшим использованием CPU
docker stats --no-stream --format "{{.Container}} {{.Name}} {{.CPUPerc}}" | sort -k3 -h- ‣
--no-stream— выводит статистику только один раз. - ‣
--format— задаёт формат вывода с отображением ID контейнера, имени и использования CPU. - ‣
sort -k3 -h— сортирует по третьему столбцу (CPU), используя числовой порядок с учётом суффиксов (например, %).
ℹ️ Результат: Список контейнеров, отсортированный по возрастанию использования CPU. Последние строки — самые «тяжёлые».
- ‣
-
2. Поиск контейнеров с наибольшим использованием памяти
docker stats --no-stream --format "{{.Container}} {{.Name}} {{.MemUsage}}" | sort -k3 -h❔ Здесь
MemUsageвыводит текущее потребление памяти в виде XMiB / YMiB. Вы можете использоватьawkдля выделения только текущего значения:docker stats --no-stream --format "{{.Container}} {{.Name}} {{.MemUsage}}" | awk '{print $1, $2, $3}' | sort -k3 -h -
3. Поиск контейнеров с наибольшим количеством запущенных процессов
for id in $(docker ps -q); do echo "$(docker exec $id ps aux | wc -l) processes in container $id" done | sort -n❕ Команда выводит количество процессов в каждом контейнере. А
sort -nсортирует список по количеству процессов. -
4. Быстрое определение размера образов контейнеров
Если нужно найти образы, которые занимают больше всего места:
docker image ls --format "{{.Repository}}:{{.Tag}} {{.Size}}" | sort -k2 -h
✳️ Применяя эти трюки, вы сможете сэкономить время и быстро получать нужную информацию о контейнерах даже в нагруженных продакшн-средах.
tags: #полезно #docker #мониторинг
🧭 @recura_tech


