Izstrāde ar Docker Windows subsistēmā Linux (WSL)

Izstrāde ar Docker Windows subsistēmā Linux (WSL)

Lai pilnvērtīgi strādātu ar projektu Docker, nepieciešama WSL 2 instalācija. Šīs piezīmes rakstīšanas brīdī tās lietošana ir iespējama tikai dalībai Windows priekšskatījuma programmā (WSL 2 ir pieejama būvēm 18932 un jaunākām). Tāpat ir jāatzīmē, ka nepieciešama Windows 10 Pro versija, lai instalētu un konfigurētu Docker Desktop.

Pirmie soļi

Pēc pievienošanās priekšskatījuma programmai un atjauninājumu instalēšanas nepieciešams instalēt Linux distribūciju (šajā piemērā tiek izmantots Ubuntu 18.04) un Docker Desktop ar WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 no Windows Store

Abos punktos sekojam visām instalācijas un konfigurācijas instrukcijām.

Ubuntu 18.04 distribūcijas instalācija

Pirms Ubuntu 18.04 palaišanas ir jāieslēdz Windows WSL un Windows Virtual Machine Platform, izpildot divas komandas PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (būs nepieciešama datora restartēšana)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Pēc tam ir jāpārliecinās, ka izmantosim WSL v2. Šim nolūkam WSL terminālī vai PowerShell secīgi izpildām šādas komandas:

  • wsl -l -v — skatām, kāda versija šobrīd ir instalēta. Ja 1, tad turpinām tālāk uz sarakstu
  • wsl --set-version ubuntu 18.04 2 — lai atjauninātu uz versiju 2
  • wsl -s ubuntu 18.04 — iestatām Ubuntu 18.04 par noklusējuma distribūciju

Tagad varam palaist Ubuntu 18.04, veikt konfigurāciju (norādīt lietotājvārdu un paroli).

Docker Desktop instalācija

Instalācijas procesā sekojam norādījumiem. Dators pēc instalācijas un pirmajā palaišanā pieprasīs restartu, lai ieslēgtu Hyper-V (tāpēc ir nepieciešama Windows 10 Pro versija).

Svarīgi! Ja Docker Desktop ziņo par ugunsmūra bloķēšanu, pārejiet uz antivīrusa iestatījumiem un veiciet šādas izmaiņas tīkla ugunsmūra noteikumos (šajā piemērā kā antivīrusu izmanto Kaspersky Total Security):

  • Ejiet uz Iestatījumi -> Aizsardzība -> Tīkla ugunsmūris -> Konfigurēt paketēs noteikumus -> Local Service (TCP) -> Mainīt
  • No lokālo portu saraksta izdzēsiet portu 445
  • Saglabāt

Pēc Docker Desktop palaišanas tā konteksta izvēlnē izvēlamies WSL 2 Tech Preview punktu.

Izstrāde ar Docker Windows subsistēmā Linux (WSL)

Atvērtajā logā nospiediet pogu Start.

Izstrāde ar Docker Windows subsistēmā Linux (WSL)

Tagad docker un docker-compose ir pieejami WSL distribūcijā.

Svarīgi! Jaunajā Docker Desktop tagad ir WSL cilne iestatījumu logā. Tur var aktivizēt WSL atbalstu.

Izstrāde ar Docker Windows subsistēmā Linux (WSL)

Svarīgi! Papildus WSL aktivizēšanas izvēles rūtiņai arī jāaktivizē jūsu WSL izplatīšana cilnē Resources->WSL Integration.

Izstrāde ar Docker Windows subsistēmā Linux (WSL)

Sākt

Negaidīts bija daudzu problēmu rašanās, mēģinot palaist konteinerus projektiem, kas atrodas Windows lietotāja direktorijā.

Dažāda veida kļūdas, kas saistītas ar bash skriptu palaišanu (kas parasti sākas, veidojot konteinerus, lai uzstādītu nepieciešamās bibliotēkas un izplatījumus) un citām parastām Linux izstrādē sastopamām lietām, lika aizdomāties par projektu izvietojumu tieši Ubuntu 18.04 lietotāja direktorijā.

.

No iepriekš minētās problēmas izriet nākamā: kā strādāt ar projekta failiem, izmantojot Windows instalēto IDE. Kā „labāko praksi” es atradu tikai vienu variantu — darbību caur VSCode (lai gan esmu PhpStorm fans).

Pēc VSCode lejupielādes un uzstādīšanas obligāti jāinstalē paplašinājums Remote Development extension pack.

Pēc iepriekšminētā paplašinājuma uzstādīšanas pietiek vienkārši izpildīt komandu code . projektu direktorijā, kad VSCode ir palaists.

Šajā piemērā, lai piekļūtu konteineriem, ir nepieciešams nginx. To var uzstādīt, izmantojot sudo apt-get install nginx izrādījās ne tik vienkārši. Sākumā bija jāatjauno WSL izplatīšana, izpildot sudo apt update && sudo apt dist-upgrade, un tikai pēc tam varēja palaist nginx uzstādīšanu.

Svarīgi! Visi lokālie domēni tiek ierakstīti ne Linux izplatīšanas /etc/hosts failā (to tur pat nav), bet gan Windows 10 hosts failā (parasti atrodas C:WindowsSystem32driversetchosts).

Avoti

Sīkāku aprakstu katram solim var atrast šeit:

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster