تاریخ امروز۱۴۰۳-۰۲-۳۱

حذف تصاویر، کانتینرها و موارد اضافی از Docker

حذف موارد اضافی از Docker چگونه است؟ ممکن است بخواهید به منظور جلوگیری از اشغال فضای ذخیره‌سازی و خروجی حجم زیادی از تصاویر، کانتینرها و داده‌‌های اضافی که قصد استفاده از آنها را ندارید، از داکر حذف نمایید.

در این مقاله قصد داریم چگونگی حذف موارد اضافی از داکر را آموزش دهیم، اما قبل از آن شما را با این پلتفرم آشنا خواهیم نمود.

داکر چیست

داکر در سال ۲۰۰۸ با نام DotCloud توسط Solomon Hykes تاسیس شد و به عنوان یک پلتفرم (PaaS) شروع به کار کرد.

این پلتفرم در سال ۲۰۱۳ تمرکز خود را بر روی ایجاد کانتینرهای نرم افزاری گذاشت تا بتواند پلتفرم خود را برروی آن‌ها اجرا نمایید.

Docker پلتفرمی متن باز بر مبنای سیستم عامل لینوکس است که اجرای فرآیندهای ایجاد، پیاده سازی و اجرای برنامه‌ها را در یک کانتینر بسیار ساده و آسان می‌کند تا بتوانید آنها را در هر مکانی اجرا کنید.

این پلتفرم با هدف ایجاد تعامل راحت‌تر با کانتینرها ایجاد شده است و این امکان را برای کاربران فراهم می‌آورد تا یک محیط را به چند بخش تقسیم کنند و در هر بخش یک برنامه مجزا اجرا را نمایند.

Containerها، واحدهای نرم افزاری مستقلی هستند که می‌توانید آن‌ها را از یک سرور به سرور دیگری منتقل نمایید.

اگر قصد دارید چندین برنامه را بر روی یک سرور اجرا کنید با استفاده از داکر می‌توانید هر برنامه را در کانتینرهای جداگانه نگه‌داری نمایید و از مشکلات مدیریت وابستگی داده‌‌ها جلوگیری کنید

درکنار استفاده از داکر، امکان انباشته‌شدن حجم زیادی تصاویر، کانتینر، اطلاعات و داده‌های اضافی وجود دارد که باعث درهم‌ریختگی output و فضای مصرفی DISK می‌شوند. به‌همین‌دلیل، بهتر است که تصاویر و کانتینرهای بدون استفاده را از داکر حذف کنید.

Docker تمام ابزارهایی را که برای پاکسازی سیستم خود از خط فرمان (Command line) نیاز دارید، در اختیار شما قرار می‌دهد تا بتوانید به راحتی فضای ذخیره سازی خود را آزاد کنید و سیستم را سازماندهی نمایید.

با استفاده از Docker، می‌توانید به سرعت برنامه‌ها را در هر محیطی استقرار و مقیاس بندی کنید و بدانید که کد شما اجرا خواهد شد.

مزایای داکر چیست

کاربران می‌توانند با استفاده از این پلتفرم کاربردی از طریق دستورات ساده به کانتینرهای مختلف دسترسی داشته باشند و از طریق API دستورات خودتان را به سرور منتقل کنید. در ادامه شما را با برخی از مزایای این پلتفرم کاربردی آشنا خواهیم کرد.

  • ایجاد کانتینر خودکار
  • ورژن‌بندی کانتینرها
  • قابلیت حمل بیشتر
  • انتقال سریع‌تر نرم‌افزارها
  • استفاده مجدد از کانتینرها
  • صرفه‌جویی در هزینه
  • استقرار سریع
  • ایزولاسیون
  • کارایی CI
  • امنیت
آموزش پاکسازی تصاویر از داکر
آموزش پاکسازی تصاویر از داکر

راهنمای استفاده از آموزش

قبل از پرداختن به این آموزش کاربردی، بهتر است بدانید که دستور و دستور جایگزین (command) و command مورد استفاده، در شل‌های محبوبی مانند bash و zsh و Windows، PowerShell موجود بوده و مورد استفاده قرار می‌گیرد.

آموزش پاکسازی تصاویر، کانتینرها، volumeها و شبکه‌های استفاده نشده از داکر

Docker یک فرمان واحد ارائه می‌کند که تا به وسیله آن بتوانید هر منبع، تصاویر، کانتینرها، ظرفیت‌ها و شبکه‌های استفاده نشده را حذف نمایید.

docker system prune

اگر قصد دارید تمامی کانتینرهای متوقف شده و تصاویر غیرکاربردی را حذف نمایید، کافیسیت عبارت a- را به دستور اضافه کنید.

docker system prune -a

حذف Volume از داکر

در ادامه آموزش حذف موارد اضافی از Docker شما را با نحوه حذف Volumes از داکر آشنا خواهیم نمود.

حذف یک یا چند Volume خاص (Docker 1.9 و جدیدتر)

با استفاده از دستور زیر می‌توانید نام و موقعیت Volume‌های مورد نظر را بیابید.

docker volume ls

با یافتن ‌Volumeهای موردنظر می‌توانید با استفاده از دستور زیر برای حذف آنها اقدام نمایید.

docker volume rm volume_name volume_name

حذف volumeهای غیرکاربردی (Docker 1.9 و جدیدتر)

هدف ولوم‌ها مستقل بودن از کانتینر است و با حذف یکی از آن‌ها، Volume‌ به‌صورت خودکار حذف نمی‌شود. Dangling به ولومی می‌گویند که به هیچ کانتینری متصل نیست و می‌توانید برای تعیین مکان آنها و تأیید اینکه می‌خواهید آن‌ها را حذف کنید یا خیر، می‌توانید از دستور docker volume ls به‌همراه یک فیلتر به شکل زیر استفاده کنید.

docker volume ls -f dangling=true

با انجام این کار، نتایج به ولوم‌های Dangling محدود خواهد شد. حال تمام این فهرست را می‌توانید با استفاده از دستور زیر حذف کنید.

docker volume prune

حذف کانتینر و Volume آن

زمانی که یک ولوم بدون نام ایجاد کرده‌ باشید، می‌توانید آن را با استفاده از عبارت v- به‌همراه کانتینرش حذف نمایند. البته توجه داشته باشید که این روش فقط برای volumeهای بدون نام کاربرد دارد.

هنگامی که کانتینر با موفقیت حذف شد، شناسه یا ID آن نمایش داده می‌شود.

اگر ولوم بدون نام باشد، بدون هیچ دردسری حذف خواهد شد و اگر با نام باشد، در همان‌جا باقی خواهد ماند.

docker rm -v container_name

حذف تصاویر داکر

در ادامه آموزش حذف موارد اضافی از Docker شما را با نحوه حذف تصاویر از داکر آشنا خواهیم نمود.

حذف یک یا چند تصویر خاص

با اجرای دستور docker images با استفاده از عبارت a- می‌توانید ID تصاویری را بیابید که قصد دارید آن‌ها را حذف‌ کنید.

این دستور تصاویر لایه‌های میانی را نشان خواهد داد.

زمانی که تصاویر موردنظر برای حذف از داکر را یافتید، می‌توانید ID یا تگ آن‌ها را به docker rmi ارسال نمایید.

لیست

با اجرای دستور زیر می‌توانید ID تصاویر مورد نظر را بیابید.

docker images -a

حذف

زمانی که ID تصاویر را با استفاده از این دستور اجرا نمایید، تصاویر مورد نظر حذف خواهند شد.

docker rmi Image Image

حذف تصاویر اضافه و غیر کاربردی

تصاویر داکر از چندین لایه تشکیل شده است. تصاویر اضافی و غیرکاربری جزء لایه‌هایی هستند که هیچ ارتباطی با تصاویر تگ شده ندارند و فقط فضای دیسک را درگیر می‌کنند.

این تصاویر را می‌توان با افزودن عبارت فیلتر f- با مقدار dangling=true به دستور docker images پیدا کرد.

زمانی که از پاک کردن این موارد اطمینان حاصل کردید، می‌توانید از دستور docker image prune استفاده نمایید.

توجه داشته باشید:

اگر تصویری بدون تگ‌گذاری ایجاد کنید، در لیست تصاویر غیرکاربردی قرار خواهند گرفت. زیرا ارتباطی با تصاویر تگ شده ندارند.

پس با ارائه تگ در حین ایجاد تصاویر می‌توانید از این وضعیت جلوگیری کنید. بدین منظور با استفاده از دستور docker tag تصاویر را تگ‌گذاری نمایید.

لیست

با اجرای این دستور می‌توانید تصاویر غیرکاربردی را بیابید.

docker images -f dangling=true

حذف

اجرای دستور زیر، به منزله حذف تصاویر غیرکاربردی می‌باشد.

docker image prune

حذف تصاویر براساس الگو

با استفاده از دستورهای ترکیبی docker images و grep می‌توانید تمامی تصاویری را که با یک الگو مطابقت دارند، پیدا کنید و با استفاده از دستور awk آنها را حذف کنید تا IDها را به docker rmi منتقل نمایید.

توجه داشته باشید که این ابزارها توسط Docker ارائه نمی‌شوند و در همه سیستم‌ها در دسترس نمی‌باشند.

لیست

با اجرای دستور زیر می‌توانید تصاویری را که با یک الگو مطابقت دارند را بیابید.

docker images -a |  grep "pattern"

حذف

این دستور، تصاویری را که با یک الگو مطابقت دارد را حذف می‌نماید.

docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

حذف تمامی تصاویر

تمام تصاویر Docker در یک سیستم را می‌توان با افزودن a- به دستور docker images فهرست کرد. هنگامی که مطمئن شدید می‌خواهید تمامی تصاویر لیست شده را حذف کنید، می‌توانید عبارت q- را به دستور اضافه کنید تا ID تصویر را به docker rmi منتقل نمایید.

لیست

با اجرای این دستور می‌توانید فهرست تصاویر را مشاهده نمایید.

docker images -a

حذف

این دستور تصاویر لیست شده را حذف می‌نماید.

docker rmi $(docker images -a -q)

حذف کانتینرها

در ادامه آموزش حذف موارد اضافی از Docker شما را با نحوه حذف کانتینرها از داکر آشنا خواهیم کرد.

حذف یک یا چند کانتینر

با اجرای دستور docker ps با عبارت a- می‌توانید نام یا ID کانتینرهایی که می‌خواهید حذف کنید را بیابید.

لیست

با اجرای این دستور می‌توانید کانتینرهای موردنظر را پیدا کنید.

docker ps -a

حذف

با اجرای این دستور نام یا IDهای موردنظر را حذف نمایید.

docker rm ID_or_Name ID_or_Name

حذف‌ کانتینر بعد از اتمام کار

درصورتی که پس از اتمام کار نمی‌خواهید کانتینر ایجاد شده را نگه دارید، می‌توانید docker run –rm را اجرا کنید.

با اجرای این دستور، کانتینر هنگام خروج به‌صورت خودکار حذف خواهد شد.

حذف و اجرا

docker run --rm image_name

حذف کانتینرهای خروجی

کاربران می‌توانند کانتینرها را با استفاده از docker ps -a بیابند و آنها را بر اساس وضعیتشان شامل ایجاد، راه‌اندازی مجدد، در حال اجرا، توقف موقت یا خروج فیلتر نمایند.

کاربران می‌توانند برای بررسی لیست کانتینرهای خارج شده، از عبارت f- برای فیلتر بر اساس وضعیت استفاده کنند. زمانی که اطمینان حاصل نمودید که می‌خواهید کانتینرها را حذف کنید، از عبارت q- برای ارسال شناسه‌ها به دستور docker rm استفاده کنید:

لیست

با اجرای دستور زیر می‌توانید کانتینرها را با استفاده از دستور زیر بیابید و لیست کانتینرهای خارج شده را بررسی نمایید.

docker ps -a -f status=exited

حذف

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

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

حذف کانتینرها با بیش از یک فیلتر

فیلترهای داکر را می‌توان با تکرار عبارت فیلتر با یک مقدار اضافی ترکیب کرد. این امر منجر به ایجاد فهرستی از کانتینرها می‌شود که هریک از آن‌ها چنین شرایطی دارند.

بیشتر بدانید : نصب داکر در CentOS

به عنوان مثال، اگر می‌خواهید تمام کانتینرهایی را که به‌عنوان ایجاد شده (حالتی که هنگام اجرای یک کانتینر با دستور نامعتبر ایجاد می‌شود) یا خارج شده علامت‌گذاری شده‌اند را حذف کنید، می‌توانید از دو فیلتر استفاده کنید.

لیست

با اجرای این دستور موارد موردنظر، برایتان فهرست خواهد شد.

docker ps -a -f status=exited -f status=created

حذف

برای حذف موارد ایجاد شده یا خارج شده می‌توانید دستور زیر را اجرا نمایید.

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

حذف کانتینرها براساس یک الگو

کاربران می‌توانند تمامی کانتینرهایی را که با یک الگو مطابقت دارد را با استفاده از دستور ترکیبی docker ps و grep پیدا کنند.

پس از اطمینان حاصل نمودن از حذف موارد لیست شده، می‌توانید از دستور awk و xargs برای ارائه ID به docker rm استفاده کنید.

توجه داشته باشید که این ابزارها توسط Docker ارائه نمی‌شوند و لزوماً در همه سیستم‌ها در دسترس نیست.

لیست

با اجرای این دستور می‌توانید موارد موردنظر را بیابید.

docker ps -a |  grep "pattern”

حذف

برای حذف موارد لیست شده می‌توانید دستور زیر را اجرا نمایید.

docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm

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

کاربران می‌توانند با استفاده از دستور docker ps تمام کانتینر‌های سیستم خود را بررسی نمایند. با افزودن عبارت a- در دستور، تمامی کانتینرها نمایش داده می‌شوند.

docker ps -a

در صورتی که بخواهید موارد نمایش داده شده را حذف نمایید می‌توانید عبارت q- را برای ارائه شناسه‌ها به دستورهایdocker stop و docker rm اضافه کنید.

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
حذف موارد اضافی از داکر
حذف موارد اضافی از داکر

جمع بندی

Docker پلتفرمی متن باز است که با هدف ایجاد تعامل راحت‌تر با کانتینرها ایجاد شده است. در این آموزش شما را با روش‌های رایج حذف تصاویر، کانتینرها و volumeهای Docker آشنا نمودیم تا بتوانید حجم زیادی از تصاویر، کانتینر و اطلاعات و داده‌های اضافی را که باعث درهم‌ریختگی خروجی و فضای مصرفی DISK می‌شوند، حذف نمایید.

با مطالعه این مقاله می‌توانید حذف موارد اضافی از Docker را با استفاده از دستورات و عبارت‌های کاربردی که در این آموزش بکار برده‌ایم بیاموزید و از فضای دیسک استفاده مفیدتری داشته باشید.

اشتراک‌گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *