حذف موارد اضافی از Docker چگونه است؟ ممکن است بخواهید به منظور جلوگیری از اشغال فضای ذخیرهسازی و خروجی حجم زیادی از تصاویر، کانتینرها و دادههای اضافی که قصد استفاده از آنها را ندارید، از داکر حذف نمایید.
در این مقاله قصد داریم چگونگی حذف موارد اضافی از داکر را آموزش دهیم، اما قبل از آن شما را با این پلتفرم آشنا خواهیم نمود.
داکر چیست
داکر در سال 2008 با نام DotCloud توسط Solomon Hykes تاسیس شد و به عنوان یک پلتفرم (PaaS) شروع به کار کرد.
این پلتفرم در سال 2013 تمرکز خود را بر روی ایجاد کانتینرهای نرم افزاری گذاشت تا بتواند پلتفرم خود را برروی آنها اجرا نمایید.
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 را با استفاده از دستورات و عبارتهای کاربردی که در این آموزش بکار بردهایم بیاموزید و از فضای دیسک استفاده مفیدتری داشته باشید.
[yasr_overall_rating]