This repository contains a systemd
timer configuration to automatically clean up unused Docker resources (volumes, networks, images, and stopped containers) on a regular basis using the docker system prune
command. The goal is to help manage Docker environments by preventing excessive disk space usage.
- Automatic execution of
docker system prune
on a schedule. - Timer-based execution via systemd.
- Easy installation and setup.
- Customizable schedule.
- Linux-based system with
systemd
. - Docker installed on your machine.
-
Clone the repository:
git clone https://github.com/1thenikita/docker-prune-systemctl-timer.git cd docker-prune-systemctl-timer
-
Copy the systemd service and timer files to the system:
sudo cp docker-prune.service /etc/systemd/system/ sudo cp docker-prune.timer /etc/systemd/system/
-
Enable and start the timer:
sudo systemctl enable docker-prune.timer sudo systemctl start docker-prune.timer
-
Check the status: To confirm that the timer is active:
sudo systemctl status docker-prune.timer
-
Logs: You can check the logs to see when
docker system prune
was last executed:journalctl -u docker-prune.service
You can modify the schedule by editing the docker-prune.timer
file. The schedule follows the systemd time syntax, so feel free to adjust it according to your needs.
Example: To run the prune every day at 2 AM, you can adjust the OnCalendar
value:
[Timer]
OnCalendar=*-*-* 02:00:00
or, as the author uses prune every day and persistant:
[Timer]
OnCalendar=daily
Persistent=true
After modifying the timer, reload systemd and restart the timer:
sudo systemctl daemon-reload
sudo systemctl restart docker-prune.timer
To remove the timer and service:
sudo systemctl stop docker-prune.timer
sudo systemctl disable docker-prune.timer
sudo rm /etc/systemd/system/docker-prune.service
sudo rm /etc/systemd/system/docker-prune.timer
sudo systemctl daemon-reload
Этот репозиторий содержит конфигурацию таймера systemd для автоматической очистки неиспользуемых ресурсов Docker (томов, сетей, образов и остановленных контейнеров) на регулярной основе с помощью команды docker system prune
. Цель - помочь управлять средой Docker, предотвращая чрезмерное использование дискового пространства.
- Автоматическое выполнение
docker system prune
по расписанию. - Выполнение через таймер systemd.
- Простая установка и настройка.
- Настраиваемое расписание.
- Система на базе Linux с
systemd
. - Установленный Docker.
-
Клонируйте репозиторий:
git clone https://github.com/1thenikita/docker-prune-systemctl-timer.git cd docker-prune-systemctl-timer
-
Скопируйте файлы таймера и сервиса systemd в систему:
sudo cp docker-prune.service /etc/systemd/system/ sudo cp docker-prune.timer /etc/systemd/system/
-
Включите и запустите таймер:
sudo systemctl enable docker-prune.timer sudo systemctl start docker-prune.timer
-
Проверьте статус: Чтобы убедиться, что таймер активен:
sudo systemctl status docker-prune.timer
-
Логи: Вы можете проверить логи, чтобы узнать, когда
docker system prune
был выполнен в последний раз:journalctl -u docker-prune.service
Вы можете изменить расписание, отредактировав файл docker-prune.timer
. Расписание следует синтаксису времени systemd, поэтому смело настраивайте его в соответствии с вашими потребностями.
Пример: чтобы запускать очистку каждый день в 2 часа ночи, измените значение OnCalendar
:
[Timer]
OnCalendar=*-*-* 02:00:00
или, как использует автор очистку каждый день и постоянно:
[Timer]
OnCalendar=daily
Persistent=true
После изменения таймера перезагрузите systemd и перезапустите таймер:
sudo systemctl daemon-reload
sudo systemctl restart docker-prune.timer
Для удаления таймера и сервиса:
sudo systemctl stop docker-prune.timer
sudo systemctl disable docker-prune.timer
sudo rm /etc/systemd/system/docker-prune.service
sudo rm /etc/systemd/system/docker-prune.timer
sudo systemctl daemon-reload