تصاویر، حجم‌ها و کانتینرهای Docker را در چند ثانیه حذف کنید


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

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

سازماندهی موثر تصاویر، حجم ها و کانتینرها هنگام استفاده از Docker مهم است. تجسم های استفاده نشده از این دارایی ها می توانند انباشته شوند، فضای ارزشمند دیسک را اشغال کنند و در نهایت بر عملکرد سیستم تأثیر بگذارند.

این مقاله راه‌های مختلف برای حفظ سازماندهی سیستم را با پاک کردن تصاویر (هم به صورت جداگانه و هم همزمان)، حجم‌ها و کانتینرها بررسی می‌کند. و ما از آن استفاده خواهیم کرد docker رابط خط فرمان (CLI) برای انجام سریع این وظایف.

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

حذف تصاویر منسوخ یا غیر ضروری از Docker برای حفظ یک سیستم تمیز و سازمان یافته ضروری است. بیایید ببینیم که چگونه CLI می تواند تصاویر خاصی را برای حذف هدف قرار دهد.

ابتدا بیایید به تصاویر در محیط Docker با the docker image ls دستور:

$ docker image ls
REPOSITORY       TAG       IMAGE ID       CREATED              SIZE
my_image         latest    2cbc27836df4   60 seconds ago       7.05MB
<none>           <none>    85b412789704   2 days ago           7.05MB
demo             latest    26d80cd96d69   15 months ago        28.5MB

لیست تصاویر بالا، تصاویر نامگذاری شده را نشان می دهد my_image و نسخه ی نمایشی، هر دو تگ شده آخرین. تصویر سوم هیچ نام یا برچسبی ندارد. در این مورد، این یک تصویر “آویزان” است: تصویری که در حال حاضر توسط یک ظرف استفاده نمی شود. این تصویر آویزان ناشی از بازسازی است my_image (یک سناریوی رایج). نسخه قبلی تصویر هنوز در سیستم فایل است، اما در حال حاضر استفاده نمی شود.

این فهرست همچنین 12 کاراکتر اول شناسه 64 نویسه‌ای هر تصویر، تاریخ ایجاد و فضای ذخیره‌سازی که تصاویر مصرف می‌کنند را نشان می‌دهد.

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

در مثال فهرست بالا، ما یک تصویر آویزان داریم. با این حال، ممکن است یک تصویر بدون نام یا برچسب فعال باشد. برای مثال، می‌توان از آن برای راه‌اندازی یک کانتینر با ارجاع به شناسه آن استفاده کرد.

برای حذف ایمن همه تصاویری که واقعا آویزان هستند، می‌توانید از آن استفاده کنید docker image prune دستور:

$ docker image prune

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y

Deleted Images:
deleted: sha256:85b412789704c17e9c5e7edc97b2f64c748bbdae7eaa44d3fe2cc21a87acad3d

Total reclaimed space: 7.05MB

ما دوباره تصاویر خود را لیست می کنیم تا نتایج کار خود را ببینیم:

$ docker image ls
REPOSITORY       TAG       IMAGE ID       CREATED              SIZE
my_image         latest    2cbc27836df4   70 seconds ago       7.05MB
demo             latest    26d80cd96d69   15 months ago        28.5MB

پس از فرآیند هرس، تصویر بدون نام یا برچسب ناپدید می شود.

اجازه ندهید که بهم ریختگی Docker سیستم شما را تحت کنترل خود درآورد! یاد بگیرید چگونه با این دستورات مفید، تصاویر، حجم ها و ظروف را به طور موثر پاک کنید. 🙌برای توییت کلیک کنید

یک تصویر خاص را بر اساس نام حذف کنید

شما می توانید یک تصویر را با ارجاع به نام آن برای حذف هدف قرار دهید:

$ docker image rm <image_name>

توجه داشته باشید: شما نمی توانید به راحتی تصاویری را که هنوز در حال استفاده هستند حذف کنید. باید ظروف در حال اجرا را که از تصاویر استفاده می کنند متوقف یا حذف کنید. در حالی که معمولاً توصیه نمی شود، می توانید با استفاده از آن یک تصویر فعال را حذف کنید -f پرچم:

$ docker image rm <image_name> -f

استفاده از علامت کوتاه rmi برای حذف تصاویر

Docker CLI یک رویکرد کوتاه نویسی برای حذف تصاویر در نام مستعار دارد rmi. استفاده از آن برای حذف یک تصویر با نام به صورت زیر است:

$ docker rmi demo
Untagged: demo:latest
Deleted: sha256:2cbc27836df4a7707e746e28368f1fdecfefbfb813aae06611ca6913116b80b4

استفاده خواهیم کرد rmi برای نمونه های حذف تصویر زیر.

حذف تمام تصاویر بدون برچسب

تصاویر بدون برچسب هنوز فضای دیسک ارزشمندی را اشغال می کنند که در طول زمان سرعت سیستم شما را بیشتر و بیشتر کند می کند.

برای حذف تمام تصاویر بدون برچسب در Docker، از docker rmi دستور با فیلتر شما می توانید فیلترها را بر اساس معیارهای خاص با استفاده از -f گزینه (با گزینه اشتباه گرفته نشود -f پرچم موجود برای image rm برای اجبار یک عمل).

فیلتر dangling=true برای شناسایی تصاویر بدون برچسب استفاده می شود:

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

را -q گزینه در دستور بالا شناسه تصویر تمام تصاویر بدون برچسب را نمایش می دهد. سپس همه این شناسه ها به عنوان آرگومان ارسال می شوند docker rmi برای حذف آنها

این فیلتر از کلمه کلیدی “آویزان” استفاده می کند، اما همانطور که در بالا ذکر شد، برخی از تصاویر بدون برچسب ممکن است در واقع فعال باشند. اگر تصویر انتخاب شده توسط این فیلتر واقعاً آویزان نباشد به شما هشدار داده می شود.

حذف یک تصویر خاص با شناسه

می توانید استفاده کنید docker rmi دستور حذف هر تصویر خاص با ارجاع به شناسه آن:

$ docker rmi <image_id>

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

شما می توانید یک تصویر خاص را به همراه نام و برچسب آن با استفاده از آن حذف کنید docker rmi فرمان

به عنوان مثال، اگر چندین تصویر با یک نام اما برچسب های متفاوت دارید، می توانید با استفاده از این فرمت، یک تصویر خاص را حذف کنید:

$ docker rmi <image_name>:<tag>

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

تمام تصاویر را با آخرین برچسب حذف کنید

در داکر، برچسب “آخرین” به جدیدترین نسخه یک تصویر داکر خاص اشاره دارد. آخرین تگ اغلب به عنوان تگ پیش فرض برای تصاویر داکر استفاده می شود. به طور خودکار به جدیدترین ساخت یک تصویر اختصاص داده می شود مگر اینکه تگ دیگری به صراحت مشخص شده باشد.

Docker دستوری برای حذف تمام تصاویر با برچسب “آخرین” ارائه می دهد:

$ docker rmi $(docker images | grep "latest" | awk '{print $3}')

دستور بالا به 2 قسمت تقسیم می شود. ابتدا لیست شناسه های تصویر را دریافت می کند و سپس این لیست را به عنوان یک آرگومان به آن ارسال می کند docker rmi فرمان

تصاویر را از یک مخزن از راه دور حذف کنید

برای حذف یک تصویر از یک مخزن راه دور، مانند Docker Hub، ابتدا باید با استفاده از Docker CLI وارد حساب کاربری خود شوید.

هنگامی که وارد سیستم شدید، فقط باید از آن استفاده کنید docker rmi دستور حذف تصویر را docker rmi دستور می تواند تصاویر محلی و راه دور را حذف کند:

docker rmi my_repo/my_image_tag

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

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

برای حذف چندین تصویر از یک مخزن راه دور، می توانید از docker rmi دستور به دنبال شناسه یا برچسب تصویر. مثلا:

docker rmi my_repo/image_tag_1 my_repo/image_tag_2 my_repo/image_tag_3

با این کار سه تصویر دارای برچسب حذف می شوند image_tag_1، image_tag_2، و image_tag_3 از مخزن my_repo.

نحوه حذف حجم های Docker

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

این دستورات به طور دائم تمام داده های ذخیره شده در یک حجم را از بین می برند، بنابراین با احتیاط از آنها استفاده کنید.

تمام حجم های استفاده نشده را حذف کنید

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

برای آزاد کردن فضای ذخیره‌سازی دیسک، می‌توانید از docker volume prune فرمان

یک جلد خاص را بر اساس نام حذف کنید

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

docker volume rm my_volume_name

با دستور بالا حجم my_volume_name حذف خواهد شد. اگر بخواهید یک حجم استفاده شده را حذف کنید، داکر خطایی ایجاد می کند. می توانید حجم های موجود را با استفاده از docker volume ls فرمان

نحوه حذف ظروف داکر

همانطور که بیشتر با Docker کار می کنید، ممکن است بسیاری از کانتینرهای استفاده نشده را جمع آوری کنید که منابع دیسک را اشغال می کنند. اگر آنها را حذف نکنید، آنها می توانند در طول زمان جمع شوند و منابع ارزشمند دیسک را اشغال کنند، سیستم شما را کند کرده و احتمالاً شما را در معرض خطر قرار می دهد.

تمام ظروف متوقف شده را بردارید

دستور docker container prune می تواند تمام کانتینرهای متوقف شده در Docker را حذف کند. در اینجا، دستور فهرستی از تمام کانتینرهای متوقف شده را ایجاد می کند که حذف خواهند شد و قبل از ادامه درخواست تأیید می کند. این به بازیابی فضای دیسک و حفظ یک محیط Docker تمیز و سازماندهی شده کمک می کند و در عین حال به شما امکان می دهد تا بررسی کنید که چیز مهمی را از دست نمی دهید:

$ docker container prune

WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y

Deleted Containers:
4df4c47c4df4
d35bcec20bce

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

یک کانتینر خاص را با شناسه حذف کنید

در Docker، می‌توانید یک کانتینر خاص را با استفاده از ID حذف کنید docker rm command به همراه شناسه کانتینر ابتدا، تمام شناسه کانتینر را با استفاده از docker ps command:

$ docker ps -a -q
1ce3cdeb4035
06b79541e25c
fa98f1804e3e

$ docker rm 1ce3cdeb4035

دستور بالا فقط در صورتی کار می کند که کانتینر در حالت توقف باشد. اگر کانتینر در حال اجرا است، باید آن را با استفاده از پرچم -f به زور حذف کنید:

$ docker rm -f 1ce3cdeb4035

یک ظرف خاص را با نام حذف کنید

داکر چند منظوره را فراهم می کند docker rm دستور حذف هر دو کانتینر با نام و شناسه.

برای مثال، اگر ظرفی به نام دارید وب_سرور، می توانید با استفاده از دستور زیر آن را حذف کنید:

$ docker rm web_server

اول، مهم است که ظرف را متوقف کنید. داکر فراهم می کند docker stop دستور توقف یک ظرف خاص.

تمام ظروف در حال اجرا را بردارید

برای حذف تمام کانتینرهای در حال اجرا، می توانید از docker rm دستور:

$ docker rm $(docker ps -q)

استفاده كردن docker ps -q شناسه کانتینرهای در حال اجرا را فهرست می کند. پس از آن، شناسه ها به docker rm دستور، که تمام کانتینرها را حذف می کند.

توجه داشته باشید که این دستور فقط کانتینرهای در حال اجرا را حذف می کند. اگر می خواهید همه کانتینرها، از جمله کانتینرهای متوقف شده را حذف کنید، می توانید به جای آن از دستور زیر استفاده کنید:

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

اگر به دنبال بهینه‌سازی سیستم Docker خود هستید، حذف تصاویر، حجم‌ها و ظروف غیرضروری یک مکان عالی برای شروع است! 💪برای توییت کلیک کنید

خلاصه

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

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

همین سادگی است که توسعه‌دهندگان را به Docker جذب می‌کند، و هیچ راه ساده‌تری برای استقرار یک برنامه کاربردی توسعه‌یافته در Docker نسبت به پلتفرم Kinsta Application Hosting وجود ندارد. اکنون می توانید آن را به صورت رایگان امتحان کنید.


همه برنامه ها، پایگاه های داده و سایت های وردپرس خود را به صورت آنلاین و زیر یک سقف دریافت کنید. پلت فرم ابری پر از ویژگی ها و عملکرد بالا ما شامل موارد زیر است:

  • راه اندازی و مدیریت آسان در داشبورد MyKinsta
  • پشتیبانی تخصصی 24 ساعته
  • بهترین سخت افزار و شبکه Google Cloud Platform که توسط Kubernetes برای حداکثر مقیاس پذیری ارائه شده است
  • یک ادغام Cloudflare در سطح سازمانی برای سرعت و امنیت
  • مخاطبان جهانی با حداکثر 35 مرکز داده و 275 PoP در سراسر جهان به دست می‌آیند

با یک آزمایش رایگان میزبانی برنامه یا میزبانی پایگاه داده ما شروع کنید. برنامه های ما را بررسی کنید یا با فروشندگان صحبت کنید تا بهترین مناسب خود را پیدا کنید.