Docker-Images täglich automatisch bereinigen (prune)
Hinweis: Dies entfernt nur Docker-Images ohne Tag, aber nicht alle Images, die nicht mit einem laufenden oder gestoppten Container verknüpft sind. Siehe unseren Beitrag zu How to automatically cleanup (prune) docker images daily falls dies nicht das gewünschte Verhalten ist.
docker image prune bietet eine einfache Möglichkeit, „ungenutzte“ (d.h. ungetaggte) Docker-Images von einem System zu entfernen und behebt oder verzögert dadurch, dass Docker den gesamten Festplattenplatz belegt.
Ich habe eine systemd-Timer-basierte tägliche Prune-Routine mit TechOverflows Simple systemd timer generator erstellt.
Schnelle Installation mit
wget -qO- https://techoverflow.net/scripts/install-cleanup-docker.sh | sudo bashDies ist das Skript, das automatisch beide systemd-Konfigurationsdateien erstellt & installiert.
#!/bin/sh
# Dieses Skript installiert automatisches Docker-Cleanup via "docker image prune"
# auf systemd-basierten Systemen.
# Es erfordert, dass Docker ordnungsgemäß installiert ist
cat >/etc/systemd/system/PruneDocker.service <<EOF
[Unit]
Description=PruneDocker
[Service]
Type=oneshot
ExecStart=/usr/bin/docker image prune -f
WorkingDirectory=/tmp
EOF
cat >/etc/systemd/system/PruneDocker.timer <<EOF
[Unit]
Description=PruneDocker
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
EOF
# Dienst aktivieren und starten
systemctl enable PruneDocker.timer && sudo systemctl start PruneDocker.timerUm Logs anzuzeigen, verwende
journalctl -xfu PruneDocker.serviceUm den Status anzuzeigen, verwende
sudo systemctl status PruneDocker.timerUm deine Docker-Images sofort zu bereinigen, verwende
sudo systemctl start PruneDocker.service