Първи стъпки с Docker в Windows 11 (WSL2) без Docker Desktop

Docker е мощен инструмент за контейнеризация, който ви позволява да изграждате, разгръщате и управлявате приложения в изолирани среди. Docker Desktop е официалната GUI версия за Windows и macOS, но не е единственият начин да използвате Docker на Windows 11. Ако предпочитате да избегнете Docker Desktop, можете да използвате Docker директно в Windows чрез WSL2 (Windows Subsystem for Linux). Тази статия ще ви покаже как да направите това стъпка по стъпка.

Какво е WSL2?

WSL2 е усъвършенствана версия на Windows Subsystem for Linux, която ви позволява да стартирате Linux среда директно в Windows. Това означава, че можете да използвате командния ред на Linux и различни Linux инструменти без да се налага да инсталирате пълноценна виртуална машина. WSL2 използва виртуализация и предоставя по-добра производителност и съвместимост в сравнение с WSL1.

Docker работи отлично с WSL2, защото Linux контейнерите се стартират директно в WSL средата, което води до по-добра интеграция и производителност.

Предварителни условия

Преди да започнете, трябва да изпълните няколко условия:

  1. Windows 11 – Уверете се, че използвате Windows 11 с най-новите актуализации.
  2. Активиране на WSL2 – WSL2 трябва да бъде активиран и настроен на вашата система.
  3. Инсталиран Linux дистрибутив – Нуждаете се от инсталирана Linux дистрибуция (например Ubuntu), която ще използвате с WSL2.

1. Активиране на WSL2

Ако WSL2 все още не е активиран, трябва да го направите. Следвайте тези стъпки:

  1. Отворете PowerShell като администратор. Натиснете Win + X и изберете „Windows Terminal (Admin)“ или „PowerShell (Admin)“.
  2. Изпълнете следната команда, за да активирате
wsl --install

Тази команда ще инсталира WSL и ще активира WSL2 като основната версия. След завършване рестартирайте компютъра.

  1. Инсталирайте желаната Linux дистрибуция, ако все още не сте го направили:
wsl --install -d Ubuntu

Можете да замените „Ubuntu“ с друга поддържана дистрибуция, ако предпочитате. След инсталацията ще трябва да конфигурирате дистрибуцията с потребителско име и парола.

  1. Проверете версията на WSL:bashCopy codewsl -l -v

Трябва да видите вашата дистрибуция с версия 2 (WSL2). Ако не, използвайте командата по-долу, за да я промените:

wsl --set-version Ubuntu 2

2. Инсталиране на Docker в WSL2

След като имате работещ WSL2, следващата стъпка е да инсталирате Docker. За тази цел ще използваме стандартни Linux команди за инсталиране на Docker в WSL средата.

Стъпки за инсталиране на Docker

Отворете вашия WSL2 терминал (Ubuntu или друга дистрибуция, която сте инсталирали).

Обновете наличните пакети с командата:

sudo apt update && sudo apt upgrade

Инсталирайте необходимите зависимости:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Добавете официалния Docker GPG ключ:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Добавете Docker репозитория:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Обновете отново пакетите:

sudo apt update

Инсталирайте Docker:

sudo apt install docker-ce docker-ce-cli containerd.io

Docker вече е инсталиран във вашата WSL среда. Следващата стъпка е да се уверите, че всичко е настроено правилно и работи.

Настройки за стартиране на Docker без root

По подразбиране, Docker изисква root права, но можете да го настроите така, че да го стартирате като обикновен потребител.

  1. Добавете вашия потребител към Docker групата:
sudo usermod -aG docker $USER

2. Излезте и влезте отново в WSL' .

След като влезете отново, проверете дали Docker работи без root с командата:

docker run hello-world

Ако виждате съобщение, че контейнерът се е стартирал успешно, значи всичко е наред.

4. Настройка на системни услуги (Systemd)

По подразбиране WSL2 не поддържа systemd, което е важно за Docker, тъй като някои от неговите процеси зависят от systemd. Можете да заобиколите това ограничение с някои конфигурации.

Как да активирате systemd в WSL2

  1. Редактирайте файла wsl.conf, за да активирате systemd. Изпълнете следната команда:
sudo nano /etc/wsl.conf

2. Добавете следния текст в редактора:

[boot]
systemd=true

3. Запазете файла с Ctrl + O и излезте с Ctrl + X.

4. След това трябва да рестартирате WSL, за да се приложат промените:

wsl --shutdown

5. Стартирайте отново WSL, като отворите терминала.

    След това Docker трябва да стартира автоматично със systemd, когато влезете в WSL2.

    Резюме

    Docker може да бъде използван на Windows 11 без Docker Desktop, чрез интеграция с WSL2. Този метод ви предоставя гъвкавостта и производителността на Linux контейнерите, без нуждата от виртуална машина или допълнителни приложения. Настройките и оптимизациите, описани в тази статия, ще ви помогнат да настроите и използвате Docker по-ефективно в Windows.

    Сега, след като сте инсталирали и конфигурирали Docker в WSL2, можете да започнете да разработвате и стартирате контейнеризирани приложения, директно в Windows 11!

    Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: