Проверено AppsHome Активен

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 работает по следующему принципу:

  1. Планировщик: Проверяет, наступило ли время для выполнения очистки.
  2. Загрузка конфигурации: Использует данные из файла конфигурации для определения параметров очистки.
  3. Выполнение команд Docker: Выполняет встроенные команды Docker для удаления ненужных ресурсов.
  4. Сбор статистики: Фиксирует информацию о том, что было удалено и сколько места освободилось.
  5. Обновление статистики: Добавляет данные в общую статистику для отслеживания изменений со временем.
  6. Отправка уведомлений: Если настроены уведомления, они отправляются после завершения очистки.
  7. Логирование: Все действия записываются в лог-файл с временной меткой.

Docker и установка

PruneMate можно установить через Docker Compose или Docker CLI. Для удобства рекомендуется использовать Docker Compose, так как он позволяет настроить все параметры в одном файле.

  1. Создание файла docker-compose.yaml: В этом файле указываются параметры для запуска контейнера, такие как порты, тома и переменные окружения.
  2. Запуск контейнера: Используйте команду docker-compose up -d, чтобы запустить PruneMate в фоновом режиме.
  3. Доступ к интерфейсу: Откройте браузер и перейдите по адресу 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-хост в чистом состоянии и избежать накопления бесполезных данных.