Utvikling med Docker på Windows Subsystem for Linux (WSL)

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:

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

På begge punktene følger vi alle installasjons- og konfigurasjonsinstruksjoner.

Installerer Ubuntu 18.04-distribusjonen

Før du kjører Ubuntu 18.04, må du aktivere Windows WSL og Windows Virtual Machine Platform ved å kjøre to kommandoer i PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (krever omstart av datamaskinen)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

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.

Utvikling med Docker på Windows Subsystem for Linux (WSL)

Klikk på Start-knappen i vinduet som åpnes.

Utvikling med Docker på Windows Subsystem for Linux (WSL)

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.

Utvikling med Docker på Windows Subsystem for Linux (WSL)

Viktig! I tillegg til avmerkingsboksen for WSL-aktivering, må du også aktivere WSL-distribusjonen i kategorien Ressurser->WSL-integrasjon.

Utvikling med Docker på Windows Subsystem for Linux (WSL)

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 lastet ned og installert VSCode, sørg for å installere den i utvidelsen Utvidelsespakke for ekstern utvikling.

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:

Kilde: www.habr.com

Legg til en kommentar