Docker-Images täglich automatisch bereinigen (prune)

English Deutsch

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

install_cleanup_docker.sh
wget -qO- https://techoverflow.net/scripts/install-cleanup-docker.sh | sudo bash

Dies ist das Skript, das automatisch beide systemd-Konfigurationsdateien erstellt & installiert.

install-cleanup-docker.sh
#!/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.timer

Um Logs anzuzeigen, verwende

view_prune_logs.sh
journalctl -xfu PruneDocker.service

Um den Status anzuzeigen, verwende

view_prune_status.sh
sudo systemctl status PruneDocker.timer

Um deine Docker-Images sofort zu bereinigen, verwende

start_prune_manual.sh
sudo systemctl start PruneDocker.service

Check out similar posts by category: Container, Docker