ProHoster > وبلاگ > اداره > توسعه با Docker در زیر سیستم ویندوز برای لینوکس (WSL)
توسعه با Docker در زیر سیستم ویندوز برای لینوکس (WSL)
برای کار کامل با یک پروژه Docker در WSL، باید WSL 2 را نصب کنید. در زمان نگارش، استفاده از آن فقط به عنوان بخشی از مشارکت در برنامه Windows Insider امکان پذیر است (WSL 2 در بیلدهای 18932 و بالاتر موجود است). همچنین لازم به ذکر است که برای نصب و پیکربندی Docker Desktop به نسخه Windows 10 Pro نیاز است.
گام های نخست
پس از پیوستن به برنامه Insider و نصب به روز رسانی ها، باید یک توزیع لینوکس (اوبونتو 18.04 در این مثال) و Docker Desktop با WSL 2 Tech Preview را نصب کنید:
پس از آن باید مطمئن شویم که از WSL v2 استفاده خواهیم کرد. برای انجام این کار، در ترمینال WSL یا PowerShell، دستورات زیر را اجرا کنید:
wsl -l -v - ببینید کدام نسخه در حال حاضر نصب شده است. اگر 1 بود، پس از این لیست به سمت پایین تر حرکت می کنیم
wsl --set-version ubuntu 18.04 2 - برای به روز رسانی به نسخه 2
wsl -s ubuntu 18.04 - اوبونتو 18.04 را به عنوان توزیع پیش فرض نصب کنید
اکنون می توانید اوبونتو 18.04 را راه اندازی کرده و آن را پیکربندی کنید (نام کاربری و رمز عبور خود را مشخص کنید).
نصب Docker Desktop
دستورالعمل ها را در طول مراحل نصب دنبال کنید. کامپیوتر پس از نصب و در اولین راهاندازی برای فعال کردن Hyper-V (که برای پشتیبانی از ویندوز 10 پرو نیاز دارد) نیاز به راهاندازی مجدد دارد.
مهم! اگر Docker Desktop مسدود شدن توسط فایروال را گزارش کرد، به تنظیمات آنتی ویروس بروید و تغییرات زیر را در قوانین فایروال اعمال کنید (در این مثال، Kaspersky Total Security به عنوان آنتی ویروس استفاده می شود):
پس از راه اندازی Docker Desktop، WSL 2 Tech Preview را از منوی زمینه آن انتخاب کنید.
در پنجره باز شده روی دکمه Start کلیک کنید.
Docker و docker-compose اکنون در توزیع WSL در دسترس هستند.
مهم! Docker Desktop به روز شده اکنون دارای یک برگه با WSL در داخل پنجره تنظیمات است. پشتیبانی WSL در آنجا فعال است.
مهم! علاوه بر چک باکس فعال سازی WSL، شما همچنین باید توزیع WSL خود را در برگه Resources->WSL Integration فعال کنید.
راه اندازی
آنچه غیرمنتظره بود، مشکلات زیادی بود که هنگام تلاش برای بلند کردن کانتینرهای پروژه واقع در فهرست کاربر ویندوز به وجود آمد.
انواع خطاهای مرتبط با راهاندازی اسکریپتهای bash (که معمولاً هنگام ساخت کانتینر برای نصب کتابخانهها و توزیعهای لازم شروع میشوند) و سایر موارد رایج برای توسعه در لینوکس، ما را به فکر قرار دادن پروژهها مستقیماً در فهرست کاربر Ubuntu 18.04 انداخت.
.
از راه حل مشکل قبلی، موارد زیر است: نحوه کار با فایل های پروژه از طریق یک IDE نصب شده در ویندوز. به عنوان "بهترین تمرین"، من فقط یک گزینه برای خودم پیدا کردم - کار از طریق VSCode (اگرچه من از طرفداران PhpStorm هستم).
پس از نصب افزونه فوق، به سادگی دستور را اجرا کنید code . در دایرکتوری پروژه زمانی که VSCode در حال اجرا است.
در این مثال، nginx برای دسترسی به کانتینرها از طریق مرورگر مورد نیاز است. آن را از طریق نصب کنید sudo apt-get install nginx معلوم شد که خیلی ساده نیست. ابتدا باید توزیع WSL را با اجرا به روز کنیم sudo apt update && sudo apt dist-upgradeو تنها پس از آن نصب nginx را شروع کنید.
مهم! همه دامنههای محلی نه در فایل /etc/hosts توزیع لینوکس (حتی در آنجا نیست)، بلکه در فایل میزبان (معمولاً C:WindowsSystem32driversetchosts) ویندوز 10 ثبت میشوند.