Udvikling med Docker på Windows Subsystem til Linux (WSL)
For fuldt ud at arbejde med et Docker-projekt i WSL skal du installere WSL 2. I skrivende stund er brugen kun mulig som en del af deltagelse i Windows Insider-programmet (WSL 2 er tilgængelig i builds 18932 og nyere). Det er også værd at nævne separat, at Windows 10 Pro-versionen er påkrævet for at installere og konfigurere Docker Desktop.
Første trin
Efter at have tilmeldt dig Insider-programmet og installeret opdateringer, skal du installere en Linux-distribution (Ubuntu 18.04 i dette eksempel) og Docker Desktop med WSL 2 Tech Preview:
Bagefter skal vi sikre os, at vi vil bruge WSL v2. For at gøre dette skal du køre følgende kommandoer i WSL- eller PowerShell-terminalen:
wsl -l -v — se, hvilken version der er installeret i øjeblikket. Hvis 1, så rykker vi længere ned på listen
wsl --set-version ubuntu 18.04 2 - for at opdatere til version 2
wsl -s ubuntu 18.04 - installer Ubuntu 18.04 som standarddistribution
Nu kan du starte Ubuntu 18.04 og konfigurere det (angiv dit brugernavn og adgangskode).
Installation af Docker Desktop
Følg instruktionerne under installationsprocessen. Computeren vil kræve en genstart efter installation og ved første opstart for at aktivere Hyper-V (hvilket er grunden til Windows 10 Pro er påkrævet).
Vigtigt! Hvis Docker Desktop rapporterer blokering af firewallen, skal du gå til antivirusindstillingerne og foretage følgende ændringer af firewallreglerne (i dette eksempel bruges Kaspersky Total Security som antivirus):
Gå til Indstillinger -> Sikkerhed -> Firewall -> Konfigurer pakkeregler -> Lokal service (TCP) -> Rediger
Fjern port 445 fra listen over lokale porte
Bevar
Når du har startet Docker Desktop, skal du vælge WSL 2 Tech Preview fra dens kontekstmenu.
Klik på knappen Start i det vindue, der åbnes.
Docker og docker-compose er nu tilgængelige i WSL-distributionen.
Vigtigt! Det opdaterede Docker Desktop har nu en fane med WSL i indstillingsvinduet. WSL-understøttelse er aktiveret der.
Vigtigt! Ud over afkrydsningsfeltet WSL-aktivering skal du også aktivere din WSL-distribution på fanen Ressourcer->WSL-integration.
Запуск
Det uventede var de mange problemer, der opstod, da man forsøgte at løfte projektbeholdere, der var placeret i Windows-brugermappen.
Fejl af forskellig art i forbindelse med lanceringen af bash-scripts (som normalt starter, når man bygger containere til installation af de nødvendige biblioteker og distributioner) og andre ting, der er fælles for udvikling på Linux, fik os til at tænke på at placere projekter direkte i brugerbiblioteket i Ubuntu 18.04.
.
Fra løsningen på det forrige problem følger følgende: hvordan man arbejder med projektfiler via en IDE installeret på Windows. Som en "best practice" fandt jeg kun én mulighed for mig selv - at arbejde gennem VSCode (selvom jeg er fan af PhpStorm).
Efter installation af ovennævnte udvidelse skal du blot køre kommandoen code . i projektbiblioteket, når VSCode kører.
I dette eksempel kræves nginx for at få adgang til containere gennem browseren. Installer den via sudo apt-get install nginx Det viste sig ikke at være så enkelt. Først skulle vi opdatere WSL-distributionen ved at køre sudo apt update && sudo apt dist-upgrade, og først derefter startes nginx-installationen.
Vigtigt! Alle lokale domæner er ikke registreret i /etc/hosts-filen i Linux-distributionen (den er ikke engang der), men i hosts-filen (normalt placeret C:WindowsSystem32driversetchosts) i Windows 10.
kilder
En mere detaljeret beskrivelse af hvert trin kan findes her: