محیط Docker خود را تمیز کنید

در این آموزش قصد داریم به بررسی این موضوع بپردازیم که چگونه می توانیم محیط محلی خود را از تصاویر داکر خود که دیگر از آنها استفاده نمی کنیم پاکسازی کنیم.
Docker عالی است اما برخی از تصاویر و کانتینرهای دانلود شده می توانند فضای زیادی را در رایانه شما اشغال کنند. برخی از این تصاویر ممکن است برای پروژههای قدیمیتری باشند که دیگر حتی روی آنها توسعه نمیدهید، بنابراین نیازی به داشتن تصویر به صورت محلی نیست. اگر به هر دلیلی نیاز دارید به آن داکر پروژه برگردید به شما امکان می دهد تصاویری را که به صورت محلی یافت نمی شوند به راحتی دانلود کنید.
کاربرد Docker را پیدا کنید
با استفاده از دستور
$ docker system df
می توانید ببینید چه مقدار فضا توسط تصاویر، ظرف و حجم های شما استفاده می شود.
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 23 9 2.62GB 2.007GB (76%)
Containers 24 1 28.71MB 28.71MB (100%)
Local Volumes 71 6 1.217GB 1.216GB (99%)
Build Cache 0 0 0B 0B
همانطور که از موارد بالا می بینید، 3.2 گیگابایت وجود دارد که می توان آن را بازیابی کرد.
Docker System Prune
این دستور میانبری است که می تواند تصاویر، کانتینرها و شبکه ها را هرس کند.
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N] y
با این کار تمام ظروف استفاده نشده و تمام حجمهای فعال حذف میشود، اما هنوز زمانهای زیادی باقی میماند که ممکن است از هیچ ظرفی استفاده نشود.
Docker Image Prune
برای حذف تمام تصاویر بدون حداقل یک ظرف مرتبط با آنها می توانید از دستور استفاده کنید docker image prune -a
$ docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
اگر اکنون دستور را اجرا کنید docker system df
خواهید دید که تنها تصاویری که به صورت محلی خواهید داشت، تصاویر فعال هستند.
Docker Container Prune
اگر میخواهید هر ظرف متوقف شده را حذف کنید، میتوانید با استفاده از دستور container prune این کار را انجام دهید
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
حتی می توانید از a استفاده کنید --filter
پرچمی که به شما امکان می دهد فقط کانتینرهایی را که در یک بازه زمانی معین متوقف شده اند حذف کنید.
$ docker container prune --filter "until=24h"
Docker Volume Prune
اگر می خواهید حجم های استفاده نشده را حذف کنید، می توانید از دستور استفاده کنید docker volume prune
.
$ docker volume prune
WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
پس از انجام تمام موارد بالا می توانید به صفحه بازگردید docker system df
دستور ذخیره فضایی که ذخیره کرده اید.