Razvoj z Dockerjem v podsistemu Windows za Linux (WSL)

Razvoj z Dockerjem v podsistemu Windows za Linux (WSL)

Če želite v celoti delati s projektom Docker v WSL, morate namestiti WSL 2. V času pisanja je njegova uporaba možna le kot del sodelovanja v programu Windows Insider (WSL 2 je na voljo v različicah 18932 in novejših). Ločeno je treba omeniti tudi, da je za namestitev in konfiguracijo Docker Desktop potrebna različica Windows 10 Pro.

Prvi koraki

Ko se pridružite programu Insider in namestite posodobitve, morate namestiti distribucijo Linuxa (v tem primeru Ubuntu 18.04) in Docker Desktop s tehničnim predogledom WSL 2:

  1. Tehnični predogled Docker Desktop WSL 2
  2. Ubuntu 18.04 iz trgovine Windows

Na obeh točkah upoštevamo vsa navodila za namestitev in konfiguracijo.

Namestitev distribucije Ubuntu 18.04

Preden zaženete Ubuntu 18.04, morate omogočiti Windows WSL in Windows Virtual Machine Platform z izvajanjem dveh ukazov v PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (potreben je ponovni zagon računalnika)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Nato se moramo prepričati, da bomo uporabljali WSL v2. Če želite to narediti, v terminalu WSL ali PowerShell zaženite naslednje ukaze:

  • wsl -l -v — poglejte, katera različica je trenutno nameščena. Če je 1, se premaknemo navzdol po seznamu
  • wsl --set-version ubuntu 18.04 2 - za posodobitev na različico 2
  • wsl -s ubuntu 18.04 — namestite Ubuntu 18.04 kot privzeto distribucijo

Zdaj lahko zaženete Ubuntu 18.04 in ga konfigurirate (določite svoje uporabniško ime in geslo).

Namestitev Docker Desktop

Sledite navodilom med postopkom namestitve. Računalnik bo zahteval ponovni zagon po namestitvi in ​​ob prvem zagonu, da se omogoči Hyper-V (ki zahteva podporo za Windows 10 Pro).

Pomembno! Če Docker Desktop poroča o blokiranju s strani požarnega zidu, pojdite v nastavitve protivirusnega programa in naredite naslednje spremembe v pravilih požarnega zidu (v tem primeru se kot protivirusni program uporablja Kaspersky Total Security):

  • Pojdite v Nastavitve -> Varnost -> Požarni zid -> Konfiguracija paketnih pravil -> Lokalna storitev (TCP) -> Uredi
  • Odstranite vrata 445 s seznama lokalnih vrat
  • Ohranijo

Ko zaženete Docker Desktop, v kontekstnem meniju izberite WSL 2 Tech Preview.

Razvoj z Dockerjem v podsistemu Windows za Linux (WSL)

V oknu, ki se odpre, kliknite gumb Start.

Razvoj z Dockerjem v podsistemu Windows za Linux (WSL)

Docker in docker-compose sta zdaj na voljo v distribuciji WSL.

Pomembno! Posodobljeno namizje Docker Desktop ima zdaj v oknu z nastavitvami zavihek z WSL. Tam je omogočena podpora za WSL.

Razvoj z Dockerjem v podsistemu Windows za Linux (WSL)

Pomembno! Poleg potrditvenega polja za aktivacijo WSL morate aktivirati tudi distribucijo WSL v zavihku Viri->Integracija WSL.

Razvoj z Dockerjem v podsistemu Windows za Linux (WSL)

Izstrelite

Kar je bilo nepričakovano, so bile številne težave, ki so se pojavile pri poskusu dvigovanja projektnih vsebnikov v uporabniškem imeniku Windows.

Napake različnih vrst, povezane z zagonom bash skriptov (ki se običajno začnejo pri gradnji vsebnikov za namestitev potrebnih knjižnic in distribucij) in druge stvari, običajne za razvoj v Linuxu, so nas spodbudile k razmišljanju o postavitvi projektov neposredno v uporabniški imenik Ubuntu 18.04.

.

Iz rešitve prejšnjega problema sledi: kako delati s projektnimi datotekami preko IDE nameščenega v sistemu Windows. Kot "najboljšo prakso" sem zase našel samo eno možnost - delo prek VSCode (čeprav sem oboževalec PhpStorm).

Ko prenesete in namestite VSCode, ga ne pozabite namestiti v razširitev Razširitveni paket za oddaljen razvoj.

Po namestitvi zgoraj omenjene razširitve preprosto zaženite ukaz code . v imeniku projekta, ko se izvaja VSCode.

V tem primeru je nginx potreben za dostop do vsebnikov prek brskalnika. Namestite ga prek sudo apt-get install nginx Izkazalo se je, da ni tako preprosto. Najprej smo morali posodobiti distribucijo WSL z zagonom sudo apt update && sudo apt dist-upgrade, in šele po tem zaženite namestitev nginx.

Pomembno! Vse lokalne domene niso registrirane v datoteki /etc/hosts distribucije Linux (sploh je ni), ampak v datoteki gostiteljev (običajno se nahaja C:WindowsSystem32driversetchosts) sistema Windows 10.

viri

Podrobnejši opis vsakega koraka najdete tukaj:

Vir: www.habr.com

Dodaj komentar