Очистка и Оптимизация Docker
Очищает неиспользуемые образы Docker, контейнеры, тома и сети для освобождения места на диске.
Опубликовано: 01.03.2024
Код
#!/bin/bash
# Docker Cleanup Script
echo "======================================"
echo " DOCKER CLEANUP UTILITY"
echo "======================================"
echo ""
if ! docker info > /dev/null 2>&1; then
echo "Error: Docker is not running!"
exit 1
fi
echo "Current Docker disk usage:"
docker system df
echo ""
echo "--- Cleaning stopped containers ---"
STOPPED=$(docker ps -aq -f status=exited | wc -l)
if [ $STOPPED -gt 0 ]; then
docker rm $(docker ps -aq -f status=exited)
echo "✓ Removed $STOPPED stopped containers"
else
echo "No stopped containers to remove"
fi
echo ""
echo "--- Cleaning dangling images ---"
DANGLING=$(docker images -f dangling=true -q | wc -l)
if [ $DANGLING -gt 0 ]; then
docker rmi $(docker images -f dangling=true -q)
echo "✓ Removed $DANGLING dangling images"
else
echo "No dangling images to remove"
fi
echo ""
echo "--- Cleaning unused volumes ---"
docker volume prune -f
echo "✓ Unused volumes cleaned"
echo ""
echo "--- Cleaning unused networks ---"
docker network prune -f
echo "✓ Unused networks cleaned"
echo ""
read -p "Clear build cache? (y/n): " CLEAR_CACHE
if [ "$CLEAR_CACHE" = "y" ]; then
docker builder prune -f
echo "✓ Build cache cleared"
fi
echo ""
echo "======================================"
echo "Cleanup completed!"
echo ""
echo "New Docker disk usage:"
docker system df
echo ""
Использование
chmod +x docker_cleanup.sh
./docker_cleanup.sh
# Full cleanup (careful!)
docker system prune -a --volumes