Sådan får du den bedste Docker-oplevelse på Windows.
Windows-undersystemet til Linux 2 er et fænomenalt værktøj på Windows 10 og 11, og det integreres problemfrit med Docker. Som udviklere er det vigtigt at forstå, hvad denne software tilbyder, og hvordan du kan få mest muligt ud af din Docker-WSL 2-opsætning.
Hvad er Docker?
Docker er en open source-platform, der giver udviklere mulighed for effektivt at bygge, implementere og køre deres applikationer i en container. Alle afhængigheder er samlet, så dit projekt nemt kan implementeres i ethvert miljø.
Docker er meget populær blandt mange containeriseringsplatforme, fordi den er pålidelig, funktionel og meget skalerbar. Det kører på Docker-motoren, et vigtigt DevOps-værktøj, der giver et rent og let miljø til test og implementering. Docker ligner en virtuel maskine, men virtualiserer operativsystemet i stedet for den underliggende hardware.
For softwareudviklere strømliner Docker arbejdsgangen ved at skabe individuelle containere til forskellige mikrotjenester, der inkluderer de nødvendige afhængigheder, biblioteker og konfigurationer. Hver mikroservicebeholder er isoleret og individuelt skalerbar.
Sådan bruger du Docker på WSL 2
Docker er kompatibel med alle større operativsystemer, såsom Windows, macOS og Linux. Hvis du er på Windows 10 eller 11, kan du bruge Docker via Docker Desktop og Integrer det med Windows Subsystem til Linux 2 for forbedret ydeevne. Du kan downloade Docker Desktop til Windows fra officielle Docker-websted.
Windows Subsystem for Linux (WSL) er en værdifuld funktion, der giver Windows-brugere mulighed for at køre Linux-distributioner som Ubuntu og Kali uden at opsætte en virtuel maskine eller dual-boot.
Det betyder også det Windows-brugere kan direkte bruge Linux-kommandolinjeværktøjer, applikationer og hjælpeprogrammer uden ekstra installationstrin. Den seneste version af WSL, WSL 2, giver større stabilitet og en dedikeret Linux-kerne.
Da Docker-containere er robuste, kan du endda konfigurere dem til at være vært for din server; nginx docker-containere bruges almindeligvis som webservere. Derudover kan du bruge Docker på flere andre måder:
- Kør nemt Linux distros
- Konfigurer en webserver til lærings- eller testformål
- Bærbare implementeringsapplikationer
- Bundle applikationen i en enkelt billedfil
- Forenklet CI/CD-pipeline
Du skal blive fortrolig med den bedste praksis for at bruge Docker med Windows Subsystem til Linux 2, ligesom du ville gøre med enhver anden platform eller værktøj. Som udvikler kan jeg sige af personlig erfaring, at du bliver meget mere produktiv og effektiv, når du integrerer følgende tips i din arbejdsgang.
1. Integrer VS-kode med WSL 2
Visual Studio Code er en populær IDE, der er elsket på grund af dens utrolige funktioner, fællesskab og udvidelser. Som udvikler, muligheden for at bruge Visual Studio Code til app-udvikling på en Windows-platform, mens også at køre disse apps på en Linux-kerne er en utrolig fordel og næsten utroligt funktion.
Når du integrerer VS-kode i Windows-undersystemet til Linux, kan du drage fordel af dens specialiserede Linux-kerne til at forbedre kompatibiliteten på tværs af platforme. Du kan strømline din arbejdsgang yderligere ved at bruge den integrerede terminal i VS Code med WSL 2.
Til opsæt VS Code med WSL 2 på Windows, kan du konfigurere WSL udvidelse fra VS Code Marketplace og få gang i tingene.
2. Brug WSL 2 filsystemet
For at køre dine Docker-containere korrekt, er det vigtigt, at du stoler på filsystemet i din WSL 2-distro og ikke er stærkt afhængig af det oprindelige Windows-filsystem. Gennem min erfaring med at arbejde med Docker-containere på WSL 2, har jeg opdaget, at det er bedre at gemme dine projektfiler i WSL.
3. Brug Native Linux Scripts
Mange containeriserede projekter, som du vil arbejde på, vil sandsynligvis komme med scripts til automatisering på Linux. Typisk udvikles disse scripts først til Linux, og Windows-udviklere er ikke en prioritet.
Med WSL 2 kan hele dit team bruge de samme Linux-automatiseringsscripts, og du behøver ikke bekymre dig om at vedligeholde Windows-kompatible automatiseringsscripts til dit team.
4. Konfigurer BuildKit for forbedret sikkerhed og ydeevne
BuildKit er et open source-værktøjssæt, der forbedrer den traditionelle Docker-byggeproces med hensyn til ydeevne og sikkerhed; det er direkte integreret med Docker, så du behøver ikke at installere det separat.
Når du aktiverer BuildKit som standard sørger du for, at dine containere bliver bygget med BuildKit-værktøjssættet, hvilket giver dig bedre sikkerhed, samtidighed, fleksibilitet og caching.
For at aktivere BuildKit som standard, skal du foretage følgende ændringer i ~/.profile-konfigurationsfilen:
eksport DOCKER_BUILDKIT=1.
5. Indstil ressourcegrænser
Når du integrerer WSL 2-backend med Docker Desktop, giver du Docker adgang til alle dine CPU-ressourcer. Det hjælper med at forbedre ydeevnen for containere, der er ressourcetunge.
Men i nogle tilfælde kan en container tildele en masse overskydende hukommelse, hvilket får kritiske OS-processer til at gå ned. Du er mere tilbøjelig til at opleve dette, når du bruger databasecontainere eller en caching-mikrotjeneste.
Heldigvis kan du konfigurere Docker-containere til at begrænse systemets hukommelse og CPU-brug. Du bør altid være forsigtig, mens du konfigurerer systemhukommelsen, selv en mindre fejl kan have betydelige konsekvenser. Du kan henvise til officiel Docker-dokumentation for en mere detaljeret vejledning om begrænsning af hukommelsen og CPU-ressourcer, der forbruges af en Docker-container.
6. Gendan cachelagret hukommelse
Hvis du kører en Docker-container i WSL 2, bør dens hukommelse frigøres, når containeren afsluttes. Desværre har operativsystemets kerne en tendens til at vedligeholde data i cachen; dette betyder, at den effektive hukommelse, der genvindes af WSL 2, ikke vil være tilstrækkelig.
Du kan gendanne al den hukommelse, der unødigt bliver brugt som en cache, ved at køre følgende kommando via root i WSL 2:
ekko 1 > /proc/sys/vm/drop_caches
Bliv klogere med WSL 2
WSL 2 er den bedste funktion for Windows-baserede udviklere, der fuldstændig ændrer, hvordan udviklere bruger Docker. Udviklere skal forstå den bedste praksis for at bruge Docker med WSL for at forbedre ydeevne, sikkerhed og workflowfleksibilitet.