Docker ابزاری است که بسته بندی برنامه ها و خدمات را آسان می کند. پس از این تسهیل، اجرای آنها در همه جا آسان است. علاوه بر استفاده از Docker، امکان جمع آوری حجم زیادی از تصاویر و کانتینرها و داده های اضافی که منبع و فضای دیسک را به هم می زند، وجود دارد. به همین دلیل، بهتر است تصاویر و کانتینرهای استفاده نشده Docker را حذف کنید.
Docker تمام ابزارهای لازم برای تمیز کردن سیستم خود را با استفاده از خط فرمان در اختیار شما قرار می دهد. در این مقاله نحوه استفاده از این ابزارها برای حذف تصویر و کانتینر از داکر را به شما آموزش می دهیم.
نکته برای استفاده از این راهنما
اول از همه، شایان ذکر است که دستور و دستور جایگزینی (دستور $) معمولاً در پاکت نامه های محبوب مانند bash، zsh و Windows Powershell استفاده می شود.
بررسی Docker and Container
داکر یک پلتفرم متن باز مبتنی بر سیستم عامل لینوکس است که می توان از آن برای بسته بندی آسان برنامه ها استفاده کرد. یکی از اهداف جدید توسعه نرم افزار، نگهداری برنامه ها در محیط و فضای ایزوله به صورت مستقل است. با استفاده از این فناوری فعالیت های برنامه ها با یکدیگر تعاملی نخواهند داشت و هر کدام از آنها دستورات را کاملا مستقل از یکدیگر اجرا می کنند.
شما می توانید این فناوری را با استفاده از ماشین مجازی اعمال کنید. ماشین مجازی برنامه های مختلف را روی سخت افزار جداگانه ذخیره می کند. در این حالت، استفاده از منابع سخت افزاری به حداقل می رسد، زیرا فعالیت یک برنامه بر برنامه دیگر تأثیر نمی گذارد. کانتینر درست در مقابل ماشین مجازی قرار دارد و به یک جایگزین و البته رقیب جدی ماشین های مجازی تبدیل شده است.
کانتینر محیط های اجرایی را جدا می کند و هسته سیستم عامل را به اشتراک می گذارد. یکی از مزایای Container نسبت به ماشین های مجازی این است که به منابع کمتری نیاز دارد و می تواند بسیار سریعتر از ماشین مجازی کار کند. کانتینرها به سه قسمت سازنده، موتور و ارکستراسیون تقسیم می شوند.
بیاموزید که چگونه تصاویر، ظروف، حجم ها و شبکه های استفاده نشده Docker را از بین ببرید
Docker یک فرمان واحد را برای پاک کردن تمام منابع برچسب گذاری شده از جمله تصاویر، کانتینرها و شبکه ها ارائه می دهد:
$ docker system prune
برای حذف هر گونه کانتینر و تصویر بی فایده، به سادگی پرچم a را به دستور اضافه کنید:
$ docker system prune -a
ظروف و تصاویر استفاده نشده را از Docker حذف کنید
حذف تصاویر داکر
حذف یک یا چند تصویر خاص
برای پیدا کردن شناسه تصاویری که می خواهید حذف کنید، از دستور docker images با a- استفاده کنید. این دستور هر تصویر از جمله لایه های میانی را به شما نشان می دهد.
هنگامی که تصاویری را که می خواهید حذف کنید پیدا کردید، می توانید شماره شناسه یا برچسب آنها را به docker rmi ارسال کنید:
لیست:
$ docker images -a
حذف:
$ docker rmi Image Image
تصاویر معلق را حذف کنید
تصاویر داکر از چندین لایه تشکیل شده اند. تصاویر آویزان لایه هایی هستند که هیچ ارتباطی با یک تصویر برچسب گذاری شده ندارند. این تصاویر بی فایده و بی فایده هستند و فقط فضای دیسک را مصرف می کنند. آنها را می توان با افزودن پرچم f-filter با مقدار dangling = true به دستور docker images پیدا کرد.
توجه: اگر تصویری بدون برچسب ایجاد کنید، در لیست تصاویر آویزان قرار می گیرد. چون ربطی به تصویر پاره ندارد. پس با ارائه تگ در حین ایجاد می توانید از این وضعیت جلوگیری کنید. برای انجام این کار، با استفاده از دستور docker tag یک تصویر را انتخاب کنید.
هنگامی که مطمئن شدید که این تصاویر را حذف کرده اید، می توانید از دستور docker image prune استفاده کنید:
لیست:
$ docker images -f dangling=true
حذف:
$ docker image prune
حذف تصاویر بر اساس یک الگو
با استفاده از تصاویر docker و دستورات grep، میتوانید تمام تصاویری که با یک الگو مطابقت دارند را پیدا کنید و با استفاده از awk آنها را حذف کنید و شناسهها را به docker rmi منتقل کنید. اول از همه، به خاطر داشته باشید که این ابزارها توسط Docker ارائه نمی شوند و لزوماً در همه سیستم ها در دسترس نیستند:
لیست:
$ docker images -a | grep "pattern"
حذف:
$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
با نحوه حذف تصاویر Docker آشنا شوید
تمام تصاویر را حذف کنید
تمامی تصاویر داکر در سیستم را می توان با افزودن a- به دستور docker images ایندکس کرد. اگر میخواهید همه تصاویر را حذف کنید، یک پرچم q اضافه کنید تا شناسه تصویر به docker rmi ارسال شود:
لیست:
$ docker images -a
حذف:
$ docker rmi $(docker images -a -q)
ظروف را بردارید
یک یا چند ظرف خاص را دور بریزید
برای پیدا کردن نام یا شناسه کانتینرهای مورد نیاز برای حذف، از دستور docker ps با پرچم a استفاده کنید:
لیست:
$ docker ps -a
حذف:
$ docker rm ID_or_Name ID_or_Name
بعد از اتمام کار ظرف را بیرون آورده و خارج شوید
اگر نمی خواهید کانتینر ایجاد شده را بعد از کار ذخیره کنید، می توانید docker run -rm را اجرا کنید. این به طور خودکار ظرف را هنگام خروج از آن حذف می کند.
راه اندازی و حذف:
$ docker run --rm image_name
تمام ظروف خروجی را تمیز کنید
می توانید کانتینرها را با استفاده از docker ps پیدا کنید و آنها را بر اساس وضعیت فیلتر کنید: ایجاد، راه اندازی مجدد، در حال اجرا، توقف یا خروج. از پرچم f برای فیلتر کردن بر اساس وضعیت استفاده کنید تا لیست ظروف دور ریخته شده را بررسی کنید. پس از تایید حذف آنها، از -q برای ارسال شناسه به دستور docker rm استفاده کنید:
لیست:
$ docker ps -a -f status=exited
حذف:
$ docker rm $(docker ps -a -f status=exited -q)
ظروف دارای بیش از یک فیلتر را بردارید
فیلترهای داکر را می توان با تکرار فیلتر پرچم با ارزش افزوده ترکیب کرد. این منجر به لیستی از ظروف می شود که هر کدام دارای چنین شرایطی هستند. به عنوان مثال، اگر میخواهید همه کانتینرهایی را که بهعنوان ایجاد شده علامتگذاری شدهاند (وضعیتی که هنگام اجرای کانتینر با دستور نامعتبر ایجاد میشود) یا خارج شدهاند را حذف کنید، باید از دو فیلتر استفاده کنید:
لیست:
$ 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 برای ارائه شناسه docker rm استفاده کنید. با این حال، به خاطر داشته باشید که این ابزارها توسط Docker ارائه نمی شوند و لزوماً در همه سیستم ها در دسترس نیستند:
لیست:
$ docker ps -a | grep "pattern”
حذف:
$ docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm
با نحوه حذف ظروف Docker آشنا شوید
تمام ظروف را متوقف کرده و بردارید
شما می توانید تمام کانتینرهای سیستم خود را با استفاده از docker ps بررسی کنید. با افزودن پرچم، تمامی کانتینرها نمایش داده می شوند. هنگامی که می خواهید آنها را حذف کنید، می توانید برای ارائه شناسه ها، q-flag را به دستورات docker stop و docker rm اضافه کنید:
لیست:
$ docker ps -a
حذف:
$ docker stop $(docker ps -a -q)
$ docker rm $(docker ps -a -q)
حجم ها را حذف کنید
حذف یک یا چند جلد خاص – Docker 1.9 و بالاتر
از دستور docker volume ls برای پیدا کردن نام جلدهایی که باید حذف شوند استفاده کنید. سپس می توانید یک یا چند جلد را با استفاده از دستور docker volume rm حذف کنید:
لیست:
$ docker volume ls
حذف:
$ docker volume rm volume_name volume_nam
حذف یک یا چند جلد خاص در Docker نسخه 1.9 و بالاتر
از آنجایی که هدف ولوم ها مستقل بودن از کانتینر است، با حذف یکی از آنها حجم به صورت خودکار حذف نمی شود. زمانی که ولوم وجود داشته باشد و به هیچ ظرفی متصل نباشد به آن ولوم آویزان می گویند. می توانید از دستور filter docker volume ls برای تعیین مکان آنها و تأیید اینکه آیا می خواهید آنها را حذف کنید استفاده کنید. این نتایج را به حجم های آویزان محدود می کند. اکنون می توانید کل لیست را با استفاده از دستور docker volume prune حذف کنید:
لیست:
$ docker volume ls -f dangling=true
حذف:
$ docker volume prune
ظرف و حجم آن را حذف کنید
اگر یک حجم بدون نام ایجاد کرده اید، می توانید از v-flag برای حذف آن با ظرف آن استفاده کنید. البته توجه داشته باشید که این روش فقط برای حجم های بدون نام کاربرد دارد.
هنگامی که ظرف با موفقیت حذف شد، شناسه آن نمایش داده می شود. توجه داشته باشید که خبری از حذف حجم نیست. در صورت ناشناس بودن حجم بدون هیچ مشکلی حذف می شود و اگر ناشناس باشد همانجا می ماند.
حذف:
$ docker rm -v container_name
آخرین کلمه
در این مقاله، شما را با روشهای رایج حذف تصاویر، کانتینرها و حجمهای Docker آشنا میکنیم. دستورات و پرچم های زیادی وجود دارد که می توانید از آنها استفاده کنید. برای استفاده بهتر از فضای دیسک، توصیه می کنیم تصاویر، کانتینرها و حجم های استفاده نشده و آویزان را از داکر حذف کنید.
سوالات متداول
1. داکر چیست؟
داکر یک پلتفرم متن باز مبتنی بر سیستم عامل لینوکس است که می توان از آن برای بسته بندی آسان برنامه ها استفاده کرد.
2. آیا حذف تصاویر داکر، حجم ها و کانتینرها مشکل است؟
خیر، با استفاده از کد ذکر شده در این مقاله می توانید تصاویر، حجم ها و کانتینرهای استفاده نشده و آویزان را حذف کنید.
4. کدام تصاویر داکر، کانتینرها و حجم ها را باید حذف کنیم؟
به طور کلی، تصاویر، حجم ها و کانتینرهای استفاده نشده Docker باید حذف شوند تا از فضای دیسک بهتر استفاده شود.
5. چرا باید تصاویر، کانتینرها و حجم های داکر را حذف کنیم؟
برای جلوگیری از استفاده بیش از حد از فضای دیسک، باید تصاویر، ظروف و حجمهای Docker را حذف کنید.
{“@context”: “https://schema.org”، “@type”: “FAQPage”، “mainEntity”: [{
“@type”: “Question”,
“name”: “آیا حذف Imageها و ولومها و کانتینرهای داکر سخت است؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “خیر، شما با استفاده از کدهایی که در این مطلب گفتیم، Imageها و ولومها و کانتینرهای بدون استفاده و Dangling را میتوانید حذف کنید.”
}
},{
“@type”: “Question”,
“name”: “کدام Imageها و کانتینر و ولومهای داکر را باید حذف کنیم؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “بهطورکلی، بهمنظور استفاده بهتر از فضای دیسک، Imageها و ولوم و کانتینرهای بدون استفاده داکر باید حذف شوند.”
}
},{
“@type”: “Question”,
“name”: “چرا Imageها و کانتینر و ولومهای داکر را باید حذف کنیم؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “بهمنظور جلوگیری از مصرف بیشازحد دیسک، باید Imageها و کانتینر و ولومهای داکر را حذف کنید.”
}
}]
}
چگونه تصاویر، ظروف و سایر موارد استفاده نشده را در داکر حذف کنیم؟ برای اولین بار در پارسوپک. به نظر می رسد.