PruneMate: Утилита для автоматической очистки ресурсов Docker
PruneMate — это легковесная утилита с удобным интерфейсом, которая позволяет автоматически удалять ненужные ресурсы Docker в установленное время. Поддерживает мультихостовые настройки и уведомления.
PruneMate — это современная утилита для управления и очистки ресурсов Docker, которая позволяет автоматически удалять ненужные контейнеры, образы, сети и тома в установленное время. С помощью PruneMate вы можете сохранить ваш Docker-хост в чистом состоянии, избежав накопления бесполезных данных. Утилита предоставляет удобный веб-интерфейс, позволяет настраивать расписание и получать уведомления о результатах очистки.
Что такое PruneMate
PruneMate — это Docker-образ и инструмент для автоматической очистки ресурсов, который работает по расписанию. Он использует встроенные команды Docker для удаления ненужных контейнеров, образов, сетей и томов. Утилита создана с использованием Python (Flask), Docker SDK, APScheduler и Gunicorn. Она предоставляет современный интерфейс с возможностью настройки времени, зон часовых поясов и выбора типов ресурсов для очистки.
Что умеет PruneMate
PruneMate предлагает широкий набор функций, которые делают его удобным инструментом для управления Docker-ресурсами. Основные возможности включают:
- Гибкое расписание: Вы можете настроить ежедневную, недельную или месячную очистку.
- Предварительный просмотр: Перед удалением ресурсов вы можете увидеть, какие именно объекты будут удалены.
- Поддержка нескольких хостов: Утилита позволяет управлять несколькими Docker-хостами через docker-socket-proxy.
- Уведомления: Вы можете настроить уведомления через Gotify, ntfy.sh, Discord или Telegram.
- Статистика: PruneMate отслеживает общее количество очищенных ресурсов и освобожденного места.
- Безопасная аутентификация: Поддерживается защита паролем с возможностью генерации хеша для безопасной авторизации.
- Мультиархитектурная поддержка: Доступны образы для amd64 и arm64.
- Детализированные отчеты: После каждой очистки вы получаете подробный отчет о результатах.
Как это работает
PruneMate работает по следующему принципу:
- Планировщик: Проверяет, наступило ли время для выполнения очистки.
- Загрузка конфигурации: Использует данные из файла конфигурации для определения параметров очистки.
- Выполнение команд Docker: Выполняет встроенные команды Docker для удаления ненужных ресурсов.
- Сбор статистики: Фиксирует информацию о том, что было удалено и сколько места освободилось.
- Обновление статистики: Добавляет данные в общую статистику для отслеживания изменений со временем.
- Отправка уведомлений: Если настроены уведомления, они отправляются после завершения очистки.
- Логирование: Все действия записываются в лог-файл с временной меткой.
Docker и установка
PruneMate можно установить через Docker Compose или Docker CLI. Для удобства рекомендуется использовать Docker Compose, так как он позволяет настроить все параметры в одном файле.
- Создание файла docker-compose.yaml: В этом файле указываются параметры для запуска контейнера, такие как порты, тома и переменные окружения.
- Запуск контейнера: Используйте команду
docker-compose up -d, чтобы запустить PruneMate в фоновом режиме. - Доступ к интерфейсу: Откройте браузер и перейдите по адресу
http://:7676/, чтобы настроить параметры.
Требования к серверу
PruneMate требует следующих условий для корректной работы:
- Docker и Docker Compose: Установленные и настроенные версии Docker и Docker Compose.
- Доступ к Docker-сокету: Необходимо предоставить доступ к
/var/run/docker.sock. - Свободное место: Достаточное количество дискового пространства для хранения логов и конфигурационных файлов.
- Время и зон часовых поясов: Утилита поддерживает настройку времени в 12- или 24-часовом формате.
- Сетевые возможности: Для работы с внешними хостами требуется поддержка docker-socket-proxy.
Где хранятся данные
PruneMate сохраняет все свои данные в следующих директориях:
- /var/run/docker.sock: Обязательный файл для доступа к Docker API.
- /logs: Хранит логи приложения, которые могут быть полезны для отладки.
- /config: Сохраняет конфигурационные и состояние файлы.
- n
- /stats: Файлы с общей статистикой по очистке.
- /lock: Используется для предотвращения одновременного запуска.
Безопасность
PruneMate предоставляет несколько уровней безопасности, чтобы защитить ваш Docker-хост:
- Аутентификация: Поддерживается защита паролем с возможностью генерации хеша для безопасной авторизации.
- Уведомления: Вы можете настроить уведомления через Gotify, ntfy.sh, Discord или Telegram.
- Логирование: Все действия записываются в лог-файл с временной меткой.
- Ограничение доступа: Утилита позволяет настроить доступ к интерфейсу и API.
- Защита от одновременного запуска: Используется файл блокировки для предотвращения одновременной очистки.
Резервное копирование
PruneMate не включает автоматическое резервное копирование, но вы можете настроить ручное сохранение данных:
- Конфигурационные файлы: Регулярно сохраняйте
/config/config.jsonи/stats/stats.json. - Логи: Рекомендуется сохранять лог-файлы для отладки.
- Резервные копии: Используйте внешние инструменты или скрипты для создания резервных копий.
Заключение
PruneMate — это мощный и удобный инструмент для управления Docker-ресурсами. Он позволяет автоматически очищать ненужные данные, настраивать расписание и получать уведомления о результатах. Утилита поддерживает мультихостовые настройки и предоставляет подробную статистику для отслеживания изменений. С помощью PruneMate вы можете сохранить ваш Docker-хост в чистом состоянии и избежать накопления бесполезных данных.
