در ابتدا با استفاده از دستور df -h وضعیت حافظه سرور را بررسی نمایید.
اگر سرویس ها بر روی داکر هستند از دستور زیر استفاده نماید
docker system df
و خروجی چیزی شبیه به این می دهد
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images
Containers
Local Volumes
Build Cache
دقیقا مشخص میکند مشکل کجاست .
اگر مشکل لاگ کانتینر ها هست :
با استفاده از دستور زیر بزرگترین فایل های لاگ را پیدا کن
find /var/lib/docker/containers -name "*-json.log" -exec du -h {} \; | sort -hr | head -20
برای پاک کردن لاگها (بدون حذف کانتینر):
find /var/lib/docker/containers -name "*-json.log" -exec truncate -s 0 {} \;
پاک کردن Build Cache
docker builder prune -a
یا
docker builder prune -a -f
اگر Imageهای بلااستفاده هستند
docker image prune -a
اگر Volumeهای بلااستفاده هستند
قبل از حذف ببین چه Volumeهایی داری:
docker volume ls
اگر مطمئن بودی استفاده نمیشوند:
اگر مطمئن بودی استفاده نمیشوند:
docker volume prune
اگر Containerهای قدیمی هستند
docker container prune
پاکسازی کامل
اگر مطمئن هستی چیزی لازم نیست:
docker system prune -a --volumes
نکته : این دستور Imageها، کانتینرهای متوقفشده، Networkهای بلااستفاده و Volumeهای بلااستفاده را حذف میکند. فقط زمانی اجرا کن که از عدم نیاز به آنها مطمئن باشی.
