Files
portainer-core/scripts/cleanup.sh
T

73 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Docker Cleanup Script
# Safely removes unused containers, images, volumes, and networks
set -e
echo "=== Docker Cleanup ==="
echo "$(date)"
echo ""
# Show current usage
echo "[Current Docker Disk Usage]"
docker system df
echo ""
# Ask for confirmation
echo "This will remove:"
echo " - Stopped containers"
echo " - Unused networks"
echo " - Dangling images"
echo " - Build cache"
echo ""
read -p "Continue? (y/N) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Cleanup cancelled"
exit 0
fi
echo ""
echo "[1/4] Removing stopped containers..."
docker container prune -f
echo "✅ Done"
echo ""
echo "[2/4] Removing unused networks..."
docker network prune -f
echo "✅ Done"
echo ""
echo "[3/4] Removing dangling images..."
docker image prune -f
echo "✅ Done"
echo ""
echo "[4/4] Removing build cache..."
docker builder prune -f
echo "✅ Done"
echo ""
# Ask about unused images
echo ""
echo "[Optional] Remove ALL unused images (not just dangling)?"
echo "⚠️ This removes images not used by any container"
read -p "Remove unused images? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Removing all unused images..."
docker image prune -a -f
echo "✅ Done"
fi
echo ""
echo "[New Docker Disk Usage]"
docker system df
echo ""
echo "=== Cleanup Complete ==="
echo ""
echo "Tip: Run 'docker volume prune' to remove unused volumes (use with caution!)"