38 lines
1,005 B
Bash
Executable file
38 lines
1,005 B
Bash
Executable file
#!/bin/bash
|
|
# scripts/docker_cleanup.sh — Netcup Docker cleanup script
|
|
set -euo pipefail
|
|
|
|
LOG=/var/log/docker-cleanup.log
|
|
|
|
log() {
|
|
echo "[$(date +%H:%M:%S)] $*" | tee -a "$LOG"
|
|
}
|
|
|
|
log "=== Docker Cleanup ==="
|
|
|
|
# 1. Remove exited containers
|
|
log "Pruning exited containers..."
|
|
docker container prune -f 2>/dev/null | tee -a "$LOG"
|
|
|
|
# 2. Remove dangling images (untagged)
|
|
log "Pruning dangling images..."
|
|
docker image prune -f 2>/dev/null | tee -a "$LOG"
|
|
|
|
# 3. Remove unused images (not referenced by any container)
|
|
log "Pruning unused images..."
|
|
docker image prune -a -f 2>/dev/null | tee -a "$LOG"
|
|
|
|
# 4. Remove build cache
|
|
log "Pruning build cache..."
|
|
docker builder prune -a -f 2>/dev/null | tee -a "$LOG"
|
|
|
|
# 5. Remove unused volumes (BE CAREFUL — only unused)
|
|
log "Pruning unused volumes..."
|
|
docker volume prune -f 2>/dev/null | tee -a "$LOG"
|
|
|
|
# 6. Report
|
|
log "=== After cleanup ==="
|
|
docker system df | tee -a "$LOG"
|
|
df -h / | tee -a "$LOG"
|
|
free -m | tee -a "$LOG"
|
|
log "=== Cleanup complete ==="
|