Utvikling med Docker på Windows Subsystem for Linux (WSL)
For å jobbe fullt ut med et Docker-prosjekt i WSL, må du installere WSL 2. I skrivende stund er bruken kun mulig som en del av deltakelse i Windows Insider-programmet (WSL 2 er tilgjengelig i build 18932 og høyere). Det er også verdt å nevne separat at Windows 10 Pro-versjonen kreves for å installere og konfigurere Docker Desktop.
Første trinn
Etter å ha blitt med i Insider-programmet og installert oppdateringer, må du installere en Linux-distribusjon (Ubuntu 18.04 i dette eksemplet) og Docker Desktop med WSL 2 Tech Preview:
Etterpå må vi sørge for at vi vil bruke WSL v2. For å gjøre dette, kjør følgende kommandoer i WSL- eller PowerShell-terminalen:
wsl -l -v - se på hvilken versjon som er installert for øyeblikket. Hvis 1, så flytter vi lenger ned på listen
wsl --set-version ubuntu 18.04 2 - for å oppdatere til versjon 2
wsl -s ubuntu 18.04 - installer Ubuntu 18.04 som standarddistribusjon
Nå kan du starte Ubuntu 18.04 og konfigurere den (spesifiser brukernavn og passord).
Installerer Docker Desktop
Følg instruksjonene under installasjonsprosessen. Datamaskinen vil kreve en omstart etter installasjon og ved første oppstart for å aktivere Hyper-V (det er derfor Windows 10 Pro kreves).
Viktig! Hvis Docker Desktop rapporterer blokkering av brannmuren, gå til antivirusinnstillingene og gjør følgende endringer i brannmurreglene (i dette eksemplet brukes Kaspersky Total Security som antivirus):
Gå til Innstillinger -> Sikkerhet -> Brannmur -> Konfigurer pakkeregler -> Lokal tjeneste (TCP) -> Rediger
Fjern port 445 fra listen over lokale porter
Behold
Etter å ha startet Docker Desktop, velg WSL 2 Tech Preview fra kontekstmenyen.
Klikk på Start-knappen i vinduet som åpnes.
Docker og docker-compose er nå tilgjengelig i WSL-distribusjonen.
Viktig! Det oppdaterte Docker Desktop har nå en fane med WSL inne i innstillingsvinduet. WSL-støtte er aktivert der.
Viktig! I tillegg til avmerkingsboksen for WSL-aktivering, må du også aktivere WSL-distribusjonen i kategorien Ressurser->WSL-integrasjon.
lanseringen
Det som var uventet var de mange problemene som oppsto når man forsøkte å løfte prosjektbeholdere som ligger i Windows-brukerkatalogen.
Feil av ulike slag knyttet til lansering av bash-skript (som vanligvis starter når man bygger containere for installasjon av nødvendige biblioteker og distribusjoner) og andre ting som er vanlig for utvikling på Linux, fikk oss til å tenke på å plassere prosjekter direkte i brukerkatalogen til Ubuntu 18.04.
.
Fra løsningen til forrige problem følger følgende: hvordan jobbe med prosjektfiler gjennom en IDE installert på Windows. Som en "beste praksis" fant jeg bare ett alternativ for meg selv - å jobbe gjennom VSCode (selv om jeg er en fan av PhpStorm).
Etter å ha installert utvidelsen ovenfor, kjør bare kommandoen code . i prosjektkatalogen når VSCode kjører.
I dette eksemplet kreves nginx for å få tilgang til containere gjennom nettleseren. Installer den via sudo apt-get install nginx Det viste seg å ikke være så enkelt. Først måtte vi oppdatere WSL-distribusjonen ved å kjøre sudo apt update && sudo apt dist-upgrade, og først etter det starter nginx-installasjonen.
Viktig! Alle lokale domener er ikke registrert i /etc/hosts-filen til Linux-distribusjonen (den er ikke engang der), men i vertsfilen (vanligvis plassert C:WindowsSystem32driversetchosts) i Windows 10.
kilder
En mer detaljert beskrivelse av hvert trinn finner du her: