Как удалить образы, контейнеры и тома Docker
Как удалить образы, контейнеры и тома Docker

Экспертное руководство по управлению и очистке Docker

В современном мире, где облачные архитектуры, микросервисы и контейнеризация стали основным стандартом программной инфраструктуры, использование Docker играет ключевую роль в обеспечении стабильности, масштабируемости и скорости развертывания сервисов. Однако, несмотря на все преимущества, которые Docker предоставляет администраторам серверов и DevOps-инженерам, всегда существует одна серьёзная проблема: накопление неиспользуемых ресурсов с течением времени.
0 Акции
0
0
0
0

مدیریت حرفه‌ای تصاویر، کانتینرها و ولوم‌ها برای بهینه‌سازی عملکرد سرورهای لینوکسی

Докер امروز یکی از پرکاربردترین ابزارها در مدیریت سرورها، دیپلوی سرویس‌ها و معماری‌های مدرن (Microservices / CI/CD / Cloud-native) است.
اما روی هر Серверی که داکر برای مدت طولانی استفاده شود، به‌تدریج حجم زیادی از Images، Containers، Volumes و Networks غیرضروری باقی می‌مانند. این انباشت می‌تواند:

  • فضای دیسک سرور را پر کند

  • سرعت Pull و Deploy سرویس‌ها را کاهش دهد

  • زمان Build را افزایش دهد

  • باعث کاهش Performance و حتی Down شدن سرویس‌ها شود

در این مقاله به شکل تخصصی و فنی یاد می‌گیریم چگونه منابع Docker را به‌صورت ایمن، هدفمند و Server-Friendly پاکسازی کنیم.

۱. اهمیت پاک‌سازی Docker در محیط‌های سرور

در یک سرور، بر خلاف محیط لوکال توسعه، هر گیگابایت فضا و هر عملیات I/O اهمیت دارد.
سه مورد اصلی که معمولاً در سرورها باعث کاهش عملکرد می‌شوند عبارت‌اند از:

۱) لایه‌های بلااستفاده تصاویر (Image Layers)

مثال: build های قدیمی، نسخه‌های قبلی سرویس‌ها، سیستم‌های CI/CD که هر Push یک Image می‌سازند.

۲) کانتینرهای خارج‌شده از مدار

در سرورها کانتینرهای متوقف‌شده معمولاً از Deploy‌های ناموفق یا Rollback‌ها باقی مانده‌اند.

۳) ولوم‌هایی که orphan شده‌اند

اگر سرویس حذف شود اما Volume باقی بماند، اطلاعات قدیمی می‌تواند به‌صورت ناخواسته فضای Disk سرور را مصرف کند.


۲. پاک‌سازی کلی سرور باdocker system prune

این فرمان قوی‌ترین ابزار پاکسازی سطح بالا در داکر است.

پاک‌سازی منابع بلااستفاده:

docker system prune

پاک‌سازی عمیق — مناسب سرورهایی که فضای دیسک اشباع شده است

docker system prune -a

مواردی که حذف می‌شود:

  • تصاویر بدون استفاده (Unused Images)

  • کانتینرهای متوقف‌شده

  • شبکه‌های بدون استفاده

  • Build Cache

نکته امنیتی برای سرورها:

هرگز در محیط Production بدون بررسی از -a استفاده نکنید،
زیرا ممکن است تصویری که فعلاً در حال استفاده نیست، اما برای دیپلوی بعدی نیاز دارید، حذف شود.

پیشنهاد حرفه‌ای:
ابتدا بررسی کنید چه چیزهایی حذف می‌شوند:

docker system df

۳. مدیریت تخصصی تصاویر Docker روی سرور (Docker Images)

مشاهده تمام تصاویر:

docker images -a

حذف تصاویر بلااستفاده (Dangling):

docker image prune

حذف یک تصویر خاص:

docker rmi IMAGE_ID

حذف تمام تصاویر بلااستفاده روی یک سرور CI/CD:

docker rmi $(docker images -f "dangling=true" -q)

حذف تمامی تصاویر موجود روی سرور:

این فرمان معمولاً در مواردی مثل Reset کردن سرور یا Rebuild کامل رجیستری استفاده می‌شود:

docker rmi $(docker images -a -q)

نکته مهم برای سرورها:

اگر تصویری حذف شود که کانتینر در حال اجرا دارد، Docker مانع می‌شود.
برای حذف اجباری:

docker rmi -f IMAGE_ID

این دستور باید با احتیاط کامل استفاده شود.


۴. حذف کانتینرها در محیط سرور

فهرست کامل کانتینرها:

docker ps -a

حذف یک کانتینر مشخص:

docker rm CONTAINER_ID

حذف کانتینرهای متوقف‌شده (مناسب Production):

docker rm $(docker ps -a -f status=exited -q)

توقف و حذف همه کانتینرها:

این دستور معمولاً هنگام Reset کردن سرور استفاده می‌شود:

docker stop $(docker ps -a -q) docker rm $(docker ps -a -q)

نکته برای سرورها:

هرگز بدون بررسی کانتینرها را یک‌جا حذف نکنید.
کانتینرهای مانیتورینگ، لاگ‌گیری یا Database ممکن است متوقف شده باشند اما ضروری باشند.


۵. حذف ولوم‌ها (Volumes) — مهم‌ترین منبع مصرف فضای سرور

ولوم‌ها در سرورها خطرناک‌تر از تصاویر هستند، زیرا:

اگر حذف شوند، داده‌ها برگشت‌پذیر نیستند.

فهرست ولوم‌ها:

docker volume ls

شناسایی ولوم‌های Orphan:

docker volume ls -f dangling=true

حذف ولوم‌های بلاصاحب:

docker volume prune

حذف یک ولوم مشخص:

docker volume rm VOLUME_NAME

حذف ولوم همراه کانتینر:

docker rm -v CONTAINER_NAME

نکته خیلی مهم:

در سرورها معمولاً:

  • دیتابیس‌ها

  • کش‌ها

  • فایل‌های Persistent

در ولوم‌ها نگهداری می‌شوند.

هرگز بدون اطمینان از مصرف به‌روز، prune نزنید.


۶. پاکسازی پیشرفته برای سرورهای پرترافیک (CI/CD, GitLab Runner, Jenkins)

اگر سرور شما تعداد زیادی Build انجام می‌دهد:

پاک‌سازی Build Cache:

docker builder prune

یا پاکسازی کامل:

docker builder prune -a

پاک‌سازی تمامی منابع BuildKit:

docker buildx prune

۷. مقایسه تخصصی دستورات پاک‌سازی Docker

دستورسطح پاکسازیمناسب برای سرورریسک
docker rmکانتینرهاСерединаپایین
docker rmiتصاویرСерединаСередина
docker volume rmولوم‌هاپایینبسیار بالا
docker image pruneتصاویر بلااستفادهВершинаکم
docker system pruneهمه منابع بلااستفادهВершинаСередина
docker system prune -aحذف عمیقفقط مواقع اضطراریВершина
docker builder pruneBuild cacheВершинаپایین

۸. بهترین استراتژی پاکسازی سرورهای Docker (پیشنهادی DevOps)

🔹 هر روز:

docker container prune

🔹 هر هفته:

docker image prune

🔹 هر ماه (فقط در صورت کمبود فضای دیسک):

docker system prune -a

🔹 هر ۳ ماه:

بکاپ → بررسی ولوم‌ها → حذف ولوم‌های Orphan

این استراتژی در اغلب دیتاسنترها استفاده می‌شود و کاملاً Production-Friendly است.


جمع‌بندی تخصصی

پاک‌سازی Docker در سرور فقط یک عملیات ساده نیست؛
بیشتر شبیه مدیریت منابع و امنیت داده Это.

با اجرای اصولی دستورات زیر:

  • فضای سرور آزاد می‌شود

  • سرعت Deploy افزایش پیدا می‌کند

  • فشار I/O روی دیسک کاهش می‌یابد

  • از Crash شدن سرویس‌ها به خاطر پر شدن دیسک جلوگیری می‌شود

این مقاله یک راهنمای کامل برای مدیریت حرفه‌ای داکر در محیط‌های Server-Grade است.

 

[Общий: 0   Средний: 0/5]
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может понравиться

Как установить IBSng на CentOS 6/7

Руководство по установке IBSng на CentOS 6/7 В этой статье приведено руководство по установке IBSng на CentOS 6/7, которое поможет вам…

Как войти на сервер Windows через удаленный рабочий стол

Как подключиться к серверу Windows через удалённый рабочий стол. Программное обеспечение для подключения к удалённому рабочему столу предоставляется бесплатно во всех версиях…