Распрацоўка з Docker на Windows Subsystem for Linux (WSL)

Распрацоўка з Docker на Windows Subsystem for Linux (WSL)

Для паўнавартаснай працы з праектам на docker'е ў WSL неабходна ўсталёўка WSL 2. На момант напісання нататкі яе выкарыстанне магчыма толькі ў рамках удзелу ў праграме папярэдняй адзнакі Windows (WSL 2 даступная ў зборках 18932 і вышэй). Гэтак жа асобна варта згадаць, што неабходна версія Windows 10 Pro для ўсталёўкі і налады Docker Desktop.

Першыя крокі

Пасля ўступлення ў праграму папярэдняй адзнакі і ўсталёўкі абнаўленняў неабходна ўсталяваць дыстрыбутыў Linux (у дадзеным прыкладзе выкарыстоўваецца Ubuntu 18.04) і Docker Desktop з WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04/XNUMX з Windows Store

У абодвух пунктах прытрымліваемся ўсіх інструкцый па ўстаноўцы і наладзе.

Устаноўка дыстрыбутыва Ubuntu 18.04

Перад запускам Ubuntu 18.04 неабходна ўключыць Windows WSL і Windows Virtual Machine Platform пасродкам выканання дзвюх каманд у PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (запатрабуе перазагрузку кампутара)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Пасля неабходна пераканацца, што мы будзем выкарыстоўваць WSL v2. Для гэтага ў тэрмінале WSL або PowerShell паслядоўна выконваем каманды:

  • wsl -l -v - глядзім, якая версія ўстаноўлена ў дадзены момант. Калі 1, то рухаемся далей па спісе
  • wsl --set-version ubuntu 18.04 2 - для абнаўлення да версіі 2
  • wsl -s ubuntu 18.04 - усталёўваны Ubuntu 18.04 у якасці дыстрыбутыва па-змаўчанні

Цяпер можна запусціць Ubuntu 18.04/XNUMX, правесці наладу (пазначыць імя карыстальніка і пароль).

Ўстаноўка Docker Desktop

У працэсе ўстаноўкі прытрымліваемся ўказанням. Кампутар запатрабуе перазапуск пасля ўсталёўкі і пры першым запуску для ўключэння Hyper-V (з-за падтрымкі якога і патрабуецца версія Windows 10 Pro).

Важна! Калі Docker Desktop паведаміць аб блакаванні з боку firewall'а, ідзем у налады антывіруса і ўносім наступныя змены ў правілы сеткавага экрана (у дадзеным прыкладзе ў якасці антывіруса выкарыстоўваецца Kaspersky Total Security):

  • Праходзім у Налады -> Абарона -> Сеткавы экран -> Наладзіць пакетныя правілы -> Local Service (TCP) -> Змяніць
  • Са спісу лакальных партоў выдаляем порт 445
  • Захаваць

Пасля запуску Docker Desktop у яго кантэкстным меню выбіраемы пункт WSL 2 Tech Preview.

Распрацоўка з Docker на Windows Subsystem for Linux (WSL)

У якое адкрылася акне націскаем кнопку Start.

Распрацоўка з Docker на Windows Subsystem for Linux (WSL)

Цяпер docker і docker-compose даступныя ўнутры дыстрыбутыва WSL.

Важна! У абноўленым Docker Desktop зараз укладка з WSL усярэдзіне акна налад. Там уключаецца падтрымка WSL.

Распрацоўка з Docker на Windows Subsystem for Linux (WSL)

Важна! Акрамя галачкі актывацыі WSL таксама неабходна ва ўкладцы Resources->WSL Integration актываваць Ваш WSL дыстрыбутыў.

Распрацоўка з Docker на Windows Subsystem for Linux (WSL)

запуск

Нечаканасцю сталі тыя шматлікія праблемы, якія ўзніклі пры спробе падняць кантэйнеры праектаў, размешчаных у дырэкторыі карыстальніка Windows.

Памылкі рознага роду, звязаныя з запускам bash-скрыптоў (якія як правіла стартуюць пры зборцы кантэйнераў для ўсталёўкі неабходных бібліятэк і дыстрыбутываў) і іншых, звычайных для распрацоўкі на Linux, рэчаў, прымусілі задумацца аб размяшчэнні праектаў непасрэдна ў дырэкторыі карыстальніка Ubuntu 18.04/XNUMX.

.

З рашэння папярэдняй праблемы выцякае наступная: як працаваць з файламі праекту праз IDE, усталяваную на Windows. У якасці «best practice» я знайшоў для сябе толькі адзін варыянт – праца пасродкам VSCode (хоць з'яўляюся прыхільнікам PhpStorm).

Пасля запампоўкі і ўсталёўкі VSCode абавязкова ўсталёўваны ў пашырэнне Remote Development extension pack.

Пасля ўстаноўкі вышэй згаданага пашырэння дастаткова проста выканаць каманду 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

Дадаць каментар