سلام :)
اگر مثل من عاشق ویژوال استودیو و داکر با هم باشید باید از داکر در ویندوز استفاده کنید ، این کار با استفاده از سرویس WSL در ویندوز امکان پذیر هست.
سرویس WSL 2 ( که نسخه جدید تر WSL هستش ) در ویندوز این امکان رو به ما میده تا هسته ی لینوکس رو روی ویندوز داشته باشیم و ازش استفاده کنیم که برای استفاده از داکر یا همون Docker Desktop در ویندوز باید این سرویس نصب باشه.
در این تصویر نوتیفیکیشن ویندوز رو میبینیم که نشون میده داکر در حال ران شدن به همراه WSL 2 هستش
اما مسئله ای که وجود داره اینه که سرویس WSL 2 میتونه بصورت داینامیک منابع رو در اختیار بگیره و این در بیشتر موارد باعث میشه وقتی ما با Docker Desktop کار میکنیم و کانتینرهای خودمون رو بالا میاریم از منابع سیستممون استفاده زیادی بشه، تا جایی که ما قادر انجام کار دیگه ای نیستیم.
مثل این تصویر که پروسس Vmmem که مربوط به اجرای کانتینر های داکر هستش بیشترین منابع ( رم و سی پی یو ) رو اشغال کرده و ول کن هم نیست :)
خب راه حل چیه؟
راه حل محدود کردن سرویس WSL 2 برای استفاده از منابع هستش ، به این شکل که تعریف میکنیم که به چه میزان حداکثری از منابع استفاده کنه.
برای این کار کافیه به یوزر خودمون در فولدر User های محل نصب ویندوزمون بریم و فایلی به نام .wslconfig بسازیم و محدویت های استفاده از منابع خودمون رو تعریف کنیم.
بطور مثال به این شکل
در این مثال من در پوشه ی C:\Users\Reza فایل .wslconfig رو ساختم ( دقت کنید که دات اول کلمه ی .wslconfig هستش )
.wslconfig
و برای استفاده از رم و پردازنده محدودیت تعریف کردم ، استفاده حداکثری از 2 گیگ از رم و 2 پردازنده مجازی از سی پی یو
[wsl2] memory=2GB # Limits VM memory in WSL 2 up to 2GB processors=2 # Makes the WSL 2 VM use two virtual processors
بعد از ایجاد فایل و تنظیمات داخل آن نیاز به دوباره اجرا کردن سرویس WSL 2 هستش تا تنظیمات اعمال بشه ( راحت ترین کار ریست کردن سیستم هستش )
خب ریست میکنیم و میریم که ببینیم تنظیمات ما اعمال میشه یا نه
من همون کانتینر های قبلی ( که تست کردم و نزدیک 5 گیگ رم رو گرفته بود ) رو ران کردم و میبینیم که میزان استفاده از رم سیستم طبق محدودیتی که گذاشته بودم هست و بیشتر از 2 گیگ نمیشه
به این شکل میتونم در داکر ، کانتینر های مورد نیازم رو بالا بیارم و در کنارش از نرمافزار های دیگه هم استفاده کنم.
امیدوارم که این مطلب به کارتون بیاد.
نظراتتون باعث خوشحالیه من میشه :)