Kom godt i gang med Docker på Windows (WSL2) uden Docker Desktop

Der er to måder at installere Docker containeriseringsplatformen på Windows 10 og 11. Den kan installeres som enDocker Desktop til Windowsapp (bruger de indbyggede Hyper-V + Windows Containers-funktioner), eller som en fuldDocker Engineinstalleret i en Linux-distro, der kører i Windows Subsystem for Linux (WSL2). Denne guide vil lede dig gennem installationen og den grundlæggende konfiguration af Docker Engine i et WSL-miljø uden brug af Docker Desktop.

Fordele ved at bruge Docker Engine i WSL:

  • Pro- eller Enterprise-udgave af Windows 10/11 er påkrævet til Docker Desktop. Docker Engine i WSL kan endda køre på Windows Home-udgaver
  • Docker Desktop til Windows kræver ekstra RAM og diskplads for at køre Hyper-V virtuelle maskiner og yderligere Windows-containere
  • Docker Desktop er gratis for små virksomheder (op til 250 ansatte), personlige og ikke-kommercielle projekter. I andre tilfælde skal du købe et betalt abonnement.

Antag, at du allerede har et WSL2-miljø (Windows Subsystem for Linux) installeret på din Windows-computer med et af de tilgængelige Linux-billeder (Ubuntu:22.04i dette eksempel). Liste over tilgængelige WSL-distributioner:

wsl --list

For at indstille standard WSL-billedet skal du køre kommandoen:

wsl --setdefault Ubuntu-24.04

Sørg for, at du bruger WSL2:

wsl --version

Hvis ikke, kør:

wsl --set-default-version 2

Opret forbindelse til dit Linux-image i WSL-miljøet:

wsl.exe

Opdater pakker i din Linux distro (Ubuntu i dette tilfælde):

$ sudo apt-get update && sudo apt-get upgrade -y

Installer derefter Docker Engine på Linux ved hjælp af det officielle script:
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Ignorer advarslen om installation af Docker i et WSL-miljø.

Tilføj din bruger til docker-gruppen. Dette giver dig mulighed for at køre Docker-kommandoer uden at skulle øge privilegier medsudoeller indtaste en adgangskode.

$ sudo usermod -aG docker $USER

Læs også:Sådan fjerner du papirkurven fra skrivebordet uden at aktivere Windows

Bekræft, at Docker Engine og Compose er blevet installeret med succes:

$ docker --version
$ docker compose version

Konfigurer nu Docker-dæmonen til at starte automatisk i WSL. WSL understøtter i øjeblikket fuldt udsystemd(init system og service manager, der bruges af mange populære Linux distros). Tjek, at det er aktiveret i dit WSL Linux-billede:

$ cat /etc/wsl.conf

[boot]
systemd=true

Kontroller derefter, at systemd bruges som Linux init-systemet:

$ stat /sbin/init

I dette tilfælde bruges systemd til init (fordi/sbin/initer et symbolsk link til/lib/systemd/systemd).

Kør Docker Engine-tjenesten og aktiver autostart:

$ sudo systemctl enable --now docker.service
$ systemctl status docker.service

Hvis systemd af en eller anden grund ikke bruges, kan du tilføje det til WSL-opstarten:

$ nano /etc/wsl.conf

[boot]
command = "/usr/sbin/service docker start"

Følgende værtscomputerressourcer er tilgængelige for WSL2 som standard:

  • 50% af RAM
  • 25% af swap-filen
  • 100 % af CPU-ressourcerne

Hvis du vil begrænse brugen af ​​værtsressourcer af WSL2-undersystemet, skal du oprette en tekstfil%UserProfile%.wslconfigi den aktuelle brugers profil. Denne fil kan bruges til at indstille globale begrænsninger for alle WSL-distros. Tilføj f.eks. følgende:

[wsl2]
memory=8GB
processors=4
swap=2GB

Genstart WSL-billedet fra Windows-kommandoprompten:

wsl --shutdown

Kør en test Docker-container i WSL:

$ docker run hello-world

Docker Engine vil downloade og kørehello-worlddemocontainer fra Docker Hub.

For at få den bedste ydeevne fra WSL2 skal du gemme alle dine Docker-containerfiler inde i WSL i stedet for i mapper, der omdirigeres fra Windows-værten (såsom /mnt/c).

Moderne Linux-versioner (Ubuntu 22.04, Debian 10+) brugernftablesi stedet for iptables til at administrere den indbyggede firewall. Linux-kerne 5.8 eller nyere påkrævet for native nftables-understøttelse i WSL. For at få netværket til at fungere korrekt med gamle kerner, skal du aktivere kompatibilitet med iptables:

$ sudo update-alternatives --config iptables


Trykke1for at vælge iptables-legacy-tilstand.

Du kan nu køre Docker-kommandoer i WSL fra Windows-kommandoprompten.

Før enhver Docker-kommando skal du angivewsl. Angiv for eksempel tilgængelige Docker-billeder:

wsl docker images

Nu kan du udvikle og køre Docker-containere på din Windows-maskine.

Related Posts