
За пълноценна работа с проекта в Docker на WSL е необходимо да се инсталира WSL 2. Към момента на написване на бележката, нейното използване е възможно само в рамките на участие в програмата за предварителна оценка на Windows (WSL 2 е достъпна в сборки 18932 и по-нови). Също така е важно да се спомене, че е необходима версия Windows 10 Pro за инсталиране и настройка на Docker Desktop.
Първи стъпки
След като се включите в програмата за предварителна оценка и инсталирате актуализации, трябва да инсталирате дистрибуция на Linux (в този пример се използва Ubuntu 18.04) и Docker Desktop с WSL 2 Tech Preview:
Във всичките две точки следваме всички инструкции за инсталиране и настройка.
Инсталация на дистрибуция Ubuntu 18.04
Преди да стартирате Ubuntu 18.04, е необходимо да включите Windows WSL и Windows Virtual Machine Platform чрез изпълнение на две команди в PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux(ще изисква рестартиране на компютъра)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
След това е необходимо да се уверите, че ще използвате WSL v2. За целта в терминала на WSL или PowerShell последователно изпълнете командите:
wsl -l -v— проверяваме коя версия е инсталирана в момента. Ако е 1, продължаваме по списъкаwsl --set-version ubuntu 18.04 2— за актуализиране до версия 2wsl -s ubuntu 18.04— задаваме Ubuntu 18.04 като дистрибуция по подразбиране
Сега можете да стартирате Ubuntu 18.04, да направите настройките (да зададете име на потребителя и парола).
Инсталация на Docker Desktop
В процеса на инсталация следваме инструкциите. Компютърът ще трябва да се рестартира след инсталацията и при първо стартиране за включване на Hyper-V (поради поддръжката на което е необходима версия Windows 10 Pro).
Важно! Ако Docker Desktop съобщи за блокиране от защитната стена, отиваме в настройките на антивируса и правим следните промени в правилата на мрежовия екран (в този пример се използва Kaspersky Total Security):
- Преминаваме в Настройки -> Защита -> Мрежова стена -> Конфигуриране на пакетни правила -> Local Service (TCP) -> Промени
- От списъка с локални портове изтриваме порт 445
- Запази
След стартиране на Docker Desktop в контекстното меню избираме WSL 2 Tech Preview.

В отворения прозорец натискаме бутона Старт.

Сега docker и docker-compose са достъпни вътре в дистрибуцията WSL.
Важно! В обновената Docker Desktop сега има раздел с WSL в прозореца с настройки. Там се активира поддръжката на WSL.

Важно! Освен отметката за активиране на WSL, е необходимо в раздела Resources->WSL Integration да активирате дистрибутива на WSL.

Стартирането
Неочакването бяха многото проблеми, които възникнаха при опитите за стартиране на контейнерите на проектите, разположени в директорията на потребителя на Windows.
Грешки от различно естество, свързани със стартирането на bash скриптове (които обикновено стартират при изграждането на контейнерите за инсталиране на необходимите библиотеки и дистрибуции) и други, обичайни за разработката на Linux, неща, ме накараха да се замисля за разполагането на проектите директно в директорията на потребителя Ubuntu 18.04.
.
От решението на предишния проблем произтича следващото: как да работим с файловете на проекта чрез IDE, инсталирана на Windows. Като "best practice" намерих за себе си само един вариант — работа чрез VSCode (въпреки че съм почитател на PhpStorm).
След изтеглянето и инсталирането на VSCode, задължително инсталирайте разширението .
След инсталирането на гореспоменатото разширение, достатъчно е просто да изпълните командата code . в директорията на проекта, когато VSCode е стартирано.
В този пример за достъп до контейнерите чрез браузъра е необходим nginx. Да го инсталирате чрез sudo apt-get install nginx се оказа не толкова просто. Първоначално беше необходимо да обновите дистрибуцията на WSL, като изпълните sudo apt update && sudo apt dist-upgrade, и само след това да стартирате инсталацията на nginx.
Важно! Всички локални домейни не се записват в файла /etc/hosts на дистрибуцията на Linux (там дори го няма), а в файла hosts (обикновено разположен в C:WindowsSystem32driversetchosts) на Windows 10.
Източници
По-подробно описание на всяка стъпка може да намерите тук:
Източник: habr.com
