Så här får du den bästa Docker-upplevelsen på Windows.
Windows Subsystem för Linux 2 är ett fenomenalt verktyg på Windows 10 och 11, och integreras sömlöst med Docker. Som utvecklare är det viktigt att förstå vad dessa program erbjuder och hur du kan få ut det mesta av din Docker-WSL 2-installation.
Vad är Docker?
Docker är en öppen källkodsplattform som tillåter utvecklare att effektivt bygga, distribuera och köra sina applikationer i en container. Alla beroenden är samlade så att ditt projekt enkelt kan distribueras i vilken miljö som helst.
Docker är mycket populär bland många containeriseringsplattformar eftersom den är pålitlig, funktionell och mycket skalbar. Den körs på Docker-motorn, ett viktigt DevOps-verktyg som ger en ren och lätt miljö för testning och driftsättning. Docker liknar en virtuell maskin men virtualiserar operativsystemet snarare än den underliggande hårdvaran.
För mjukvaruutvecklare effektiviserar Docker arbetsflödet genom att skapa individuella behållare för olika mikrotjänster som inkluderar nödvändiga beroenden, bibliotek och konfigurationer. Varje mikroservicebehållare är isolerad och individuellt skalbar.
Hur man använder Docker på WSL 2
Docker är kompatibel med alla större operativsystem, som Windows, macOS och Linux. Om du använder Windows 10 eller 11 kan du använda Docker via Docker Desktop och integrera det med Windows Subsystem för Linux 2 för förbättrad prestanda. Du kan ladda ner Docker Desktop för Windows från officiella Docker-webbplatsen.
Windows Subsystem for Linux (WSL) är en värdefull funktion som gör att Windows-användare kan köra Linux-distributioner som Ubuntu och Kali utan att ställa in en virtuell maskin eller dual-boot.
Det betyder också det Windows-användare kan direkt använda Linux kommandoradsverktyg, applikationer och verktyg utan extra installationssteg. Den senaste versionen av WSL, WSL 2, ger större stabilitet och en dedikerad Linux-kärna.
Eftersom Docker-behållare är robusta kan du till och med konfigurera dem för att vara värd för din server; nginx docker-containrar används ofta som webbservrar. Dessutom kan du använda Docker på flera andra sätt:
- Kör Linux-distros enkelt
- Konfigurera en webbserver för inlärnings- eller testsyften
- Bärbara distributionsapplikationer
- Bunta applikationen till en enda bildfil
- Förenklad CI/CD-pipeline
Du måste bli bekant med de bästa metoderna för att använda Docker med Windows Subsystem för Linux 2, precis som du skulle göra med vilken annan plattform eller verktyg som helst. Som utvecklare kan jag säga av personlig erfarenhet att du kommer att bli mycket mer produktiv och effektiv när du integrerar följande tips i ditt arbetsflöde.
1. Integrera VS-kod med WSL 2
Visual Studio Code är en populär IDE som är älskad på grund av dess otroliga funktioner, community och tillägg. Som utvecklare, möjligheten att använda Visual Studio Code för apputveckling på en Windows-plattform medan även att köra dessa appar på en Linux-kärna är otroligt fördelaktigt och nästan otroligt funktion.
När du integrerar VS Code i Windows Subsystem för Linux kan du dra fördel av dess specialiserade Linux-kärna för att förbättra plattformsoberoende kompatibilitet. Du kan ytterligare effektivisera ditt arbetsflöde genom att använda den integrerade terminalen i VS Code med WSL 2.
Till ställ in VS Code med WSL 2 på Windows, kan du konfigurera WSL förlängning från VS Code Marketplace och få saker att gå.
2. Använd filsystemet WSL 2
För att köra dina Docker-behållare på rätt sätt är det viktigt att du litar på filsystemet i din WSL 2-distro och inte är starkt beroende av det ursprungliga Windows-filsystemet. Under hela min erfarenhet av att arbeta med Docker-behållare på WSL 2, har jag upptäckt att det är bättre att lagra dina projektfiler i WSL.
3. Använd inbyggda Linux-skript
Många containeriserade projekt som du kommer att arbeta med kommer förmodligen att komma med skript för automatisering på Linux. Vanligtvis utvecklas dessa skript först för Linux, och Windows-utvecklare är inte en prioritet.
Med WSL 2 kan hela ditt team använda samma Linux-automatiseringsskript, och du behöver inte oroa dig för att underhålla Windows-kompatibla automatiseringsskript för ditt team.
4. Konfigurera BuildKit för förbättrad säkerhet och prestanda
BuildKit är ett verktyg med öppen källkod som förbättrar den traditionella Docker-byggprocessen när det gäller prestanda och säkerhet; den är direkt integrerad med Docker, så du behöver inte installera den separat.
När du aktiverar BuildKit som standard ser du till att dina behållare byggs med BuildKit-verktygssatsen, vilket ger dig bättre säkerhet, samtidighet, flexibilitet och cachning.
För att aktivera BuildKit som standard bör du göra följande ändringar i konfigurationsfilen ~/.profile:
exportera DOCKER_BUILDKIT=1.
5. Ställ in resursgränser
När du integrerar WSL 2-backend med Docker Desktop, ger du Docker tillgång till alla dina CPU-resurser. Att göra det hjälper till att förbättra prestandan för behållare som är resurstunga.
Men i vissa fall kan en behållare allokera mycket överflödigt minne, vilket gör att kritiska OS-processer kraschar. Det är mer sannolikt att du upplever detta när du använder databasbehållare eller en cachande mikrotjänst.
Lyckligtvis kan du konfigurera Docker-behållare för att begränsa systemminnet och CPU-användningen. Du bör alltid vara försiktig när du konfigurerar systemminnet, även ett mindre misstag kan få betydande konsekvenser. Du kan hänvisa till officiell Docker-dokumentation för en mer detaljerad guide om begränsning av minne och CPU-resurser som förbrukas av en Docker-behållare.
6. Återställ cachelagrat minne
Om du kör en Docker-behållare i WSL 2, bör dess minne frigöras när behållaren avslutas. Tyvärr tenderar operativsystemets kärna att behålla data i cachen; detta betyder att det effektiva minnet som återvinns av WSL 2 inte kommer att vara tillräckligt.
Du kan återställa allt minne som i onödan används som cache genom att köra följande kommando via root i WSL 2:
eko 1 > /proc/sys/vm/drop_caches
Bli smartare med WSL 2
WSL 2 är den bästa funktionen för Windows-baserade utvecklare, som helt förändrar hur utvecklare använder Docker. Utvecklare måste förstå de bästa metoderna för att använda Docker med WSL för att förbättra prestanda, säkerhet och arbetsflödesflexibilitet.