Таҳия бо Docker дар зерсистемаи Windows барои Linux (WSL)

Таҳия бо Docker дар зерсистемаи Windows барои Linux (WSL)

Барои пурра кор кардан бо лоиҳаи Docker дар WSL, шумо бояд WSL 2-ро насб кунед. Ҳангоми навиштан, истифодаи он танҳо ҳамчун як қисми иштирок дар барномаи Windows Insider имконпазир аст (WSL 2 дар сохти 18932 ва болотар дастрас аст). Инчунин бояд алоҳида қайд кард, ки версияи Windows 10 Pro барои насб ва танзим кардани Docker Desktop лозим аст.

қадамҳои аввалин

Пас аз ҳамроҳ шудан ба барномаи Insider ва насб кардани навсозиҳо, шумо бояд тақсимоти Linux (Ubuntu 18.04 дар ин мисол) ва Docker Desktop бо WSL 2 Tech Preview насб кунед:

  1. Пешнамоиши техникии Docker Desktop WSL 2
  2. Ubuntu 18.04 аз Дӯкони Windows

Дар ҳарду нуқта мо ҳама дастурҳои насб ва конфигуратсияро риоя мекунем.

Насб кардани тақсимоти 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-ро оғоз кунед ва онро танзим кунед (номи корбар ва пароли худро муайян кунед).

Ҷойгиркунии Docker Desktop

Дар ҷараёни насб дастурҳоро риоя кунед. Компютер пас аз насб ва ҳангоми оғози аввал барои фаъол кардани Hyper-V (ки барои дастгирӣ Windows 10 Pro лозим аст) бозоғозро талаб мекунад.

Муҳимтарин! Агар Docker Desktop гузориш диҳад, ки аз ҷониби брандмауэр баста шудааст, ба танзимоти антивирус гузаред ва ба қоидаҳои брандмауэр тағйироти зерин ворид кунед (дар ин мисол, Kaspersky Total Security ҳамчун антивирус истифода мешавад):

  • Ба Танзимотҳо -> Амният -> Сипар -> Танзими қоидаҳои баста -> Хидмати маҳаллӣ (TCP) -> Таҳрир.
  • Порти 445-ро аз рӯйхати портҳои маҳаллӣ хориҷ кунед
  • нигоҳ доштан

Пас аз оғоз кардани Docker Desktop, аз менюи контекстии худ WSL 2 Tech Preview -ро интихоб кунед.

Таҳия бо Docker дар зерсистемаи Windows барои Linux (WSL)

Дар равзанаи кушодашуда тугмаи Оғозро клик кунед.

Таҳия бо Docker дар зерсистемаи Windows барои Linux (WSL)

Docker ва docker-compose ҳоло дар дохили тақсимоти WSL дастрасанд.

Муҳимтарин! Мизи кории навшудаи Docker ҳоло дар дохили равзанаи танзимот ҷадвали дорои WSL дорад. Дар он ҷо дастгирии WSL фаъол аст.

Таҳия бо Docker дар зерсистемаи Windows барои Linux (WSL)

Муҳимтарин! Илова ба қуттии фаъолсозии WSL, шумо инчунин бояд тақсимоти WSL-и худро дар ҷадвали Resources-> WSL Integration фаъол созед.

Таҳия бо Docker дар зерсистемаи Windows барои Linux (WSL)

Запуск

Он чизе, ки ғайричашмдошт буд, мушкилоти зиёде буд, ки ҳангоми кӯшиши бардоштани контейнерҳои лоиҳа, ки дар феҳристи корбарони Windows ҷойгиранд, ба миён омаданд.

Хатогиҳои намудҳои гуногуни марбут ба оғози скриптҳои bash (ки одатан ҳангоми сохтани контейнерҳо барои насб кардани китобхонаҳои зарурӣ ва дистрибутивҳо оғоз мешаванд) ва чизҳои дигаре, ки барои таҳия дар Linux маъмуланд, моро водор сохт, ки дар бораи ҷойгир кардани лоиҳаҳо бевосита дар феҳристи корбарони Ubuntu 18.04 фикр кунем.

.

Аз ҳалли масъалаи қаблӣ инҳоянд: чӣ гуна кор кардан бо файлҳои лоиҳа тавассути IDE дар Windows насб карда шудааст. Ҳамчун "таҷрибаи беҳтарин" ман танҳо як вариантро барои худ пайдо кардам - ​​кор тавассути VSCode (ҳарчанд ман як мухлиси PhpStorm ҳастам).

Пас аз зеркашӣ ва насби VSCode, боварӣ ҳосил кунед, ки онро дар васеъкунӣ насб кунед Бастаи тамдиди рушди дурдаст.

Пас аз насб кардани васеъшавии дар боло зикршуда, танҳо фармонро иҷро кунед code . дар директорияи лоиҳа вақте ки VSCode кор мекунад.

Дар ин мисол, nginx барои дастрасӣ ба контейнерҳо тавассути браузер лозим аст. Онро тавассути sudo apt-get install nginx Маълум шуд, ки ин чандон оддӣ нест. Аввалан, мо бояд тақсимоти WSL-ро тавассути иҷро навсозӣ кунем sudo apt update && sudo apt dist-upgrade, ва танҳо пас аз он насби nginx-ро оғоз кунед.

Муҳимтарин! Ҳама доменҳои маҳаллӣ на дар файли /etc/hosts тақсимоти Linux (ҳатто вуҷуд надорад), балки дар файли ҳостҳо (одатан ҷойгиршавии C:WindowsSystem32driversetchosts)-и Windows 10 ба қайд гирифта шудаанд.

Манбаъҳои иттилоот

Тавсифи муфассали ҳар як қадамро дар ин ҷо пайдо кардан мумкин аст:

Манбаъ: will.com

Илова Эзоҳ