Začněte s Dockerem ve Windows (WSL2) bez Docker Desktop

Existují dva způsoby, jak nainstalovat kontejnerizační platformu Docker na Windows 10 a 11. Lze ji nainstalovat jakoDocker Desktop pro Windowsaplikace (využívá vestavěné funkce Hyper-V + Windows Containers), nebo jako plnáDocker Enginenainstalované v linuxové distribuci běžící v subsystému Windows pro Linux (WSL2). Tato příručka vás provede instalací a základní konfigurací Docker Engine v prostředí WSL bez použití Docker Desktop.

Výhody použití Docker Engine ve WSL:

  • Pro Docker Desktop je vyžadována verze Pro nebo Enterprise Windows 10/11. Docker Engine ve WSL může dokonce běžet na edicích Windows Home
  • Docker Desktop pro Windows vyžaduje další RAM a místo na disku ke spuštění virtuálních počítačů Hyper-V a dalších kontejnerů Windows
  • Docker Desktop je zdarma pro malé podniky (do 250 zaměstnanců), osobní a nekomerční projekty. V ostatních případech si budete muset zakoupit placené předplatné.

Předpokládejme, že již máte na svém počítači se systémem Windows nainstalované prostředí WSL2 (Windows Subsystem for Linux) s jedním z dostupných obrazů Linux (Ubuntu:22.04v tomto příkladu). Seznam dostupných distribucí WSL:

wsl --list

Chcete-li nastavit výchozí obraz WSL, spusťte příkaz:

wsl --setdefault Ubuntu-24.04

Ujistěte se, že používáte WSL2:

wsl --version

Pokud ne, spusťte:

wsl --set-default-version 2

Připojte se k obrazu Linuxu v prostředí WSL:

wsl.exe

Aktualizujte balíčky ve vaší distribuci Linuxu (v tomto případě Ubuntu):

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

Poté nainstalujte Docker Engine na Linux pomocí oficiálního skriptu:
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Ignorujte varování o instalaci Dockeru v prostředí WSL.

Přečtěte si také:Jak odstranit koš z plochy bez aktivace systému Windows

Přidejte svého uživatele do skupiny dockerů. To vám umožní spouštět příkazy Dockeru, aniž byste museli zvyšovat oprávněnísudonebo zadáním hesla.

$ sudo usermod -aG docker $USER

Ověřte, že Docker Engine a Compose byly úspěšně nainstalovány:

$ docker --version
$ docker compose version

Nyní nakonfigurujte démona Docker tak, aby se automaticky spouštěl ve WSL. WSL v současné době plně podporujesystemd(init systém a správce služeb používaný mnoha populárními distribucemi Linuxu). Zkontrolujte, zda je povolena ve vašem obrazu WSL Linux:

$ cat /etc/wsl.conf

[boot]
systemd=true

Poté zkontrolujte, zda se jako iniciační systém Linuxu používá systemd:

$ stat /sbin/init

V tomto případě se pro init používá systemd (protože/sbin/initje symbolickým odkazem na/lib/systemd/systemd).

Spusťte službu Docker Engine a povolte automatické spuštění:

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

Pokud se z nějakého důvodu systemd nepoužívá, můžete jej přidat do spuštění WSL:

$ nano /etc/wsl.conf

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

Ve výchozím nastavení jsou WSL2 k dispozici následující prostředky hostitelského počítače:

  • 50 % paměti RAM
  • 25 % odkládacího souboru
  • 100 % zdrojů CPU

Pokud chcete omezit používání hostitelských prostředků subsystémem WSL2, vytvořte textový soubor%UserProfile%.wslconfigv profilu aktuálního uživatele. Tento soubor lze použít k nastavení globálních omezení pro všechny distribuce WSL. Přidejte například následující:

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

Restartujte obraz WSL z příkazového řádku systému Windows:

wsl --shutdown

Spusťte testovací kontejner Docker ve WSL:

$ docker run hello-world

Docker Engine stáhne a spustíhello-worlddemo kontejner z Docker Hub.

Chcete-li získat nejlepší výkon z WSL2, ukládejte všechny soubory kontejneru Docker uvnitř WSL, nikoli v adresářích, které jsou přesměrovány z hostitele Windows (jako je /mnt/c).

Moderní verze Linuxu (Ubuntu 22.04, Debian 10+) používajínftablesmísto iptables pro správu vestavěného firewallu. Pro nativní podporu nftables ve WSL je vyžadováno linuxové jádro 5.8 nebo novější. Aby síť fungovala správně se starými jádry, povolte kompatibilitu s iptables:

$ sudo update-alternatives --config iptables


Stiskněte1vyberte režim iptables-legacy.

Nyní můžete spouštět příkazy Docker ve WSL z příkazového řádku Windows.

Před jakýmkoli příkazem Dockeru musíte zadatwsl. Uveďte například dostupné obrázky Docker:

wsl docker images

Nyní můžete vyvíjet a spouštět kontejnery Docker na počítači se systémem Windows.

Related Posts