Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)

Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)

Norėdami visiškai dirbti su „Docker“ projektu WSL, turite įdiegti WSL 2. Rašymo metu jį naudoti galima tik dalyvaujant „Windows Insider“ programoje (WSL 2 galimas 18932 ir naujesnėse versijose). Taip pat verta atskirai paminėti, kad norint įdiegti ir konfigūruoti Docker Desktop, reikalinga Windows 10 Pro versija.

Pirmieji žingsniai

Prisijungę prie „Insider“ programos ir įdiegę naujinimus, turite įdiegti „Linux“ paskirstymą (šiame pavyzdyje „Ubuntu 18.04“) ir „Docker Desktop“ su WSL 2 technine peržiūra:

  1. „Docker Desktop WSL 2“ techninė peržiūra
  2. Ubuntu 18.04 iš Windows Store

Abiejuose taškuose laikomės visų diegimo ir konfigūravimo instrukcijų.

Ubuntu 18.04 platinimo diegimas

Prieš paleisdami Ubuntu 18.04, turite įgalinti Windows WSL ir Windows virtualios mašinos platformą paleisdami dvi komandas PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (reikia iš naujo paleisti kompiuterį)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Po to turime įsitikinti, kad naudosime WSL v2. Norėdami tai padaryti, WSL arba PowerShell terminale paleiskite šias komandas:

  • wsl -l -v — pažiūrėkite, kuri versija šiuo metu įdiegta. Jei 1, tada sąraše einame toliau
  • wsl --set-version ubuntu 18.04 2 - atnaujinti į 2 versiją
  • wsl -s ubuntu 18.04 — įdiekite Ubuntu 18.04 kaip numatytąjį platinimą

Dabar galite paleisti Ubuntu 18.04 ir sukonfigūruoti (nurodykite savo vartotojo vardą ir slaptažodį).

„Docker Desktop“ diegimas

Diegimo proceso metu vadovaukitės instrukcijomis. Įdiegus kompiuterį reikės iš naujo paleisti ir pirmą kartą paleidus, kad būtų įjungtas „Hyper-V“ (tam reikalinga „Windows 10 Pro“ palaikymas).

Svarbu! Jei „Docker Desktop“ praneša, kad užkarda blokuoja, eikite į antivirusinius nustatymus ir atlikite šiuos ugniasienės taisyklių pakeitimus (šiame pavyzdyje „Kaspersky Total Security“ naudojama kaip antivirusinė priemonė):

  • Eikite į Nustatymai -> Sauga -> Ugniasienė -> Konfigūruoti paketų taisykles -> Vietinė paslauga (TCP) -> Redaguoti
  • Pašalinkite 445 prievadą iš vietinių prievadų sąrašo
  • Išlaikyti

Paleidę „Docker Desktop“, kontekstiniame meniu pasirinkite WSL 2 Tech Preview.

Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)

Atsidariusiame lange spustelėkite mygtuką Pradėti.

Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)

„Docker“ ir „docker-compose“ dabar pasiekiami WSL paskirstyme.

Svarbu! Atnaujintame „Docker Desktop“ nustatymų lange dabar yra skirtukas su WSL. Ten įjungtas WSL palaikymas.

Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)

Svarbu! Be WSL aktyvinimo žymės langelio, taip pat turite suaktyvinti WSL paskirstymą skirtuke Resources->WSL Integration.

Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)

Paleidimas

Netikėta buvo daugybė problemų, iškilusių bandant pakelti projekto konteinerius, esančius Windows vartotojo kataloge.

Įvairių rūšių klaidos, susijusios su bash scenarijų paleidimu (kurios paprastai prasideda kuriant konteinerius, skirtus reikiamoms bibliotekoms ir paskirstymui įdiegti) ir kiti dalykai, įprasti kuriant Linux sistemoje, privertė mus galvoti apie projektų patalpinimą tiesiai į Ubuntu 18.04 vartotojo katalogą.

.

Iš ankstesnės problemos sprendimo: kaip dirbti su projekto failais naudojant „Windows“ įdiegtą IDE. Kaip „geriausią praktiką“ radau tik vieną variantą sau - dirbti per VSCode (nors esu „PhpStorm“ gerbėjas).

Atsisiuntę ir įdiegę VSCode, būtinai įdiekite jį plėtinyje Nuotolinio kūrimo plėtinio paketas.

Įdiegę aukščiau minėtą plėtinį, tiesiog paleiskite komandą code . projekto kataloge, kai veikia VSCode.

Šiame pavyzdyje nginx turi pasiekti konteinerius per naršyklę. Įdiekite jį per sudo apt-get install nginx Paaiškėjo, kad tai nėra taip paprasta. Pirmiausia turėjome atnaujinti WSL paskirstymą paleisdami sudo apt update && sudo apt dist-upgrade, ir tik po to pradėkite nginx diegimą.

Svarbu! Visi vietiniai domenai registruojami ne „Linux“ paskirstymo faile /etc/hosts (jo net nėra), o „Windows 32“ pagrindinio kompiuterio faile (paprastai esančiame C:WindowsSystem10driversetchosts).

Informacijos šaltiniai

Išsamesnį kiekvieno žingsnio aprašymą rasite čia:

Šaltinis: www.habr.com

Добавить комментарий