Utveckling med Docker på Windows Subsystem för Linux (WSL)
För att fullt ut arbeta med ett Docker-projekt i WSL måste du installera WSL 2. I skrivande stund är användningen endast möjlig som en del av deltagande i Windows Insider-programmet (WSL 2 finns tillgängligt i versioner 18932 och högre). Det är också värt att nämna separat att Windows 10 Pro-versionen krävs för att installera och konfigurera Docker Desktop.
Första stegen
Efter att ha gått med i Insider-programmet och installerat uppdateringar måste du installera en Linux-distribution (Ubuntu 18.04 i det här exemplet) och Docker Desktop med WSL 2 Tech Preview:
Efteråt måste vi se till att vi kommer att använda WSL v2. För att göra detta, kör följande kommandon i WSL- eller PowerShell-terminalen:
wsl -l -v — titta på vilken version som för närvarande är installerad. Om 1, så flyttar vi längre ner i listan
wsl --set-version ubuntu 18.04 2 - för att uppdatera till version 2
wsl -s ubuntu 18.04 — installera Ubuntu 18.04 som standarddistribution
Nu kan du starta Ubuntu 18.04 och konfigurera det (ange ditt användarnamn och lösenord).
Installerar Docker Desktop
Följ instruktionerna under installationsprocessen. Datorn kommer att kräva en omstart efter installation och vid första uppstart för att aktivera Hyper-V (vilket kräver Windows 10 Pro för att stödja).
Viktigt! Om Docker Desktop rapporterar blockering av brandväggen, gå till antivirusinställningarna och gör följande ändringar i brandväggsreglerna (i det här exemplet används Kaspersky Total Security som antivirus):
Gå till Inställningar -> Säkerhet -> Brandvägg -> Konfigurera paketregler -> Lokal tjänst (TCP) -> Redigera
Ta bort port 445 från listan över lokala portar
Behåll
Efter att ha startat Docker Desktop, välj WSL 2 Tech Preview från dess snabbmeny.
Klicka på Start-knappen i fönstret som öppnas.
Docker och docker-compose är nu tillgängliga inom WSL-distributionen.
Viktigt! Det uppdaterade Docker Desktop har nu en flik med WSL i inställningsfönstret. WSL-stöd är aktiverat där.
Viktigt! Utöver kryssrutan WSL-aktivering måste du också aktivera din WSL-distribution på fliken Resurser->WSL-integration.
Запуск
Det som var oväntat var de många problem som uppstod när man försökte lyfta projektbehållare som finns i Windows användarkatalog.
Fel av olika slag i samband med lanseringen av bash-skript (som vanligtvis startar när man bygger behållare för att installera nödvändiga bibliotek och distributioner) och andra saker som är vanliga för utveckling på Linux fick oss att fundera på att placera projekt direkt i användarkatalogen för Ubuntu 18.04.
.
Från lösningen till föregående problem följer följande: hur man arbetar med projektfiler via en IDE installerad på Windows. Som en "bästa praxis" hittade jag bara ett alternativ för mig själv - att arbeta genom VSCode (även om jag är ett fan av PhpStorm).
Efter att ha installerat ovan nämnda tillägg, kör bara kommandot code . i projektkatalogen när VSCode körs.
I det här exemplet krävs nginx för att komma åt behållare via webbläsaren. Installera den via sudo apt-get install nginx Det visade sig inte vara så enkelt. Först behövde vi uppdatera WSL-distributionen genom att köra sudo apt update && sudo apt dist-upgrade, och först efter det starta nginx-installationen.
Viktigt! Alla lokala domäner registreras inte i filen /etc/hosts i Linux-distributionen (den finns inte ens där), utan i hosts-filen (vanligtvis lokaliserad C:WindowsSystem32driversetchosts) i Windows 10.
källor
En mer detaljerad beskrivning av varje steg finns här: