Utveckling med Docker på Windows Subsystem för Linux (WSL)

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:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 från Windows Store

På båda punkterna följer vi alla installations- och konfigurationsanvisningar.

Installera Ubuntu 18.04-distributionen

Innan du kör Ubuntu 18.04 måste du aktivera Windows WSL och Windows Virtual Machine Platform genom att köra två kommandon i PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (kräver omstart av datorn)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

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.

Utveckling med Docker på Windows Subsystem för Linux (WSL)

Klicka på Start-knappen i fönstret som öppnas.

Utveckling med Docker på Windows Subsystem för Linux (WSL)

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.

Utveckling med Docker på Windows Subsystem för Linux (WSL)

Viktigt! Utöver kryssrutan WSL-aktivering måste du också aktivera din WSL-distribution på fliken Resurser->WSL-integration.

Utveckling med Docker på Windows Subsystem för Linux (WSL)

Запуск

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 laddat ner och installerat VSCode, se till att installera den i tillägget Förlängningspaket för fjärrutveckling.

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:

Källa: will.com

Lägg en kommentar