Začínáme s kontejnerem WSL

Tento podrobný průvodce vám pomůže začít sestavovat a spouštět kontejnery Linuxu na Windows pomocí wslc.exerozhraní příkazového řádku kontejneru, které je součástí WSL.

wslc.exe poskytuje známé rozhraní příkazového řádku pro sestavování, přesouvání a spouštění kontejnerizovaných aplikací.

Přehled kontejnerů WSL

Kontejner je nástroj, který slouží k vytváření, nasazování a spouštění aplikací. Kontejnery umožňují vývojářům zabalit aplikaci se všemi částmi, které potřebuje (knihovny, architektury, závislosti atd.) a odeslat je jako jeden balíček. Použití kontejneru zajišťuje, aby aplikace běžela stejně bez ohledu na všechna přizpůsobená nastavení nebo dříve nainstalované knihovny v počítači, na kterém je spuštěná, která se mohla lišit od počítače použitého k zápisu a otestování kódu aplikace. To umožňuje vývojářům soustředit se na psaní kódu, aniž by se museli starat o systém, na který se bude kód spouštět.

Požadavky

  • Nainstalovaný WSL, verze 2.9.3 nebo vyšší. Tato verze je aktuálně dostupná jenom jako předběžná verze, takže ji můžete získat spuštěním wsl --update --pre-release .
  • Nainstalujte Visual Studio Code(volitelné) To vám poskytne nejlepší prostředí, včetně možnosti kódování a ladění kontejnerizovaných projektů připojených k distribuci Linuxu.
  • Nainstalujte terminál Windows(volitelné). Tím získáte co nejlepší prostředí, včetně možnosti přizpůsobení a otevření více terminálů ve stejném rozhraní (včetně Ubuntu, Debianu, PowerShellu, Azure CLI nebo libovolného zařízení, které chcete použít).

Instalace a ověření wslcu

wslc.exe je součástí WSL, takže neexistuje žádný samostatný modul k instalaci. Vyžaduje WSL verze 2.9.3 nebo vyšší. Abyste měli jistotu, že máte verzi WSL, která ji obsahuje:

  1. Nainstalujte WSL , pokud jste to ještě neudělali, a pak aktualizujte na nejnovější předběžnou verzi tak, že otevřete PowerShell a zadáte:

    wsl --update --pre-release
    

    Poznámka:

    Kontejner WSL je aktuálně k dispozici pouze v předběžných buildech (verze 2.9.3 nebo vyšší), takže --pre-release se vyžaduje příznak. Verzi WSL můžete ověřit pomocí wsl --version.

  2. Potvrďte, že wslc.exe je k dispozici, a zkontrolujte jeho verzi zadáním:

    wslc version
    
  3. Ověřte, že vše funguje správně, spuštěním jednoduché integrované image. Image se automaticky načítá, pokud ještě není místně k dispozici:

    wslc run --rm hello-world
    

    Měla by se zobrazit zpráva "Hello", která potvrzuje, že instalace vypadá správně.

Návod

Zde je několik užitečných wslc příkazů, které byste měli znát:

  • Zadáním: wslc vypište příkazy dostupné v wslc --help CLI.
  • Informace pro konkrétní příkaz vypíšete s: wslc <COMMAND> --help
  • Vypište obrazy ve vašem počítači pomocí: wslc image list
  • Vypište spuštěné kontejnery ve svém počítači příkazem: wslc container list nebo vypište všechny kontejnery (včetně zastavených) příkazem: wslc container list --all
  • Zobrazte statistiky využití prostředků pro spuštěné kontejnery pomocí: wslc stats

Spuštění prvních kontejnerů

Díky wslc.exe tomu můžete načíst image, spouštět kontejnery na popředí nebo na pozadí, publikovat porty a pracovat se spuštěnými kontejnery. Vyzkoušejte několik z těchto příkazů z PowerShellu:

# Run a command in a throwaway container
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"

# Run a web server in the background and publish port 8080 to the container's port 80
wslc run -d --rm -p 8080:80 --name web nginx

# Request content from the running web server
curl localhost:8080

# List the running container
wslc container list

# Run an additional command inside the running container
wslc exec web cat /etc/os-release

# Stop the container
wslc container stop web

Protože byl kontejner nginx spuštěn pomocí --rm, po zastavení se automaticky odebere.

Sestavte a spusťte vlastní bitovou kopii kontejneru

Pokud chcete začít s vývojem wslc.exeaplikací, doporučujeme používat VS Code spolu s rozšířením WSL , abyste mohli upravovat projekt v systému souborů Linux a spouštět wslc příkazy z integrovaného terminálu.

Pojďme vytvořit image kontejneru pro existující projekt aplikace.

  1. V tomto příkladu použijeme zdrojový kód z kurzu Hello World pro Django v dokumentace k nastavení Python vývojového prostředí. Tento krok můžete přeskočit, pokud chcete použít vlastní zdrojový kód projektu. Pokud chcete stáhnout HelloWorld-Django webovou aplikaci z GitHub, otevřete terminál WSL (například Ubuntu) a zadejte:

    git clone https://github.com/<username>/helloworld-django.git
    

    Poznámka:

    Vždy uložte kód do stejného systému souborů, ve kterém používáte nástroje. Výsledkem bude rychlejší výkon přístupu k souborům. V tomto příkladu používáme distribuci Linuxu (Ubuntu) a chceme ukládat soubory projektu do systému \\wsl$souborů WSL . Ukládání projektových souborů v systému souborů Windows by při použití linuxových nástrojů ve WSL pro přístup k těmto souborům výrazně zpomalilo.

  2. V terminálu WSL změňte adresáře do složky zdrojového kódu pro tento projekt:

    cd helloworld-django
    
  3. Otevřete projekt v editoru VS Code spuštěném na místním serveru rozšíření WSL zadáním:

    code .
    

    Zkontrolujte zelený vzdálený indikátor v levém dolním rohu instance VS Code, že jste připojení k distribuci WSL Linux.

    Indikátor vzdáleného spojení pro VS Code WSL

  4. Containerfile Přidejte do kořenového adresáře projektu popis, jak vytvořit image. V příkladu Django může minimální Containerfile vypadat takto:

    FROM python:3
    WORKDIR /app
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    COPY . .
    EXPOSE 8000
    CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
    
  5. Ze složky projektu (adresář obsahující váš Containerfile), sestavte image pomocí wslc buildznačky a označte ji názvem, na který můžete později odkazovat:

    wslc build -t helloworld-django .
    
  6. Potvrďte, že byl obrázek vytvořen, zobrazením seznamu vašich obrázků:

    wslc image list
    
  7. Spusťte nově vytvořenou image jako kontejner a publikujte port aplikace, abyste se k ní dostali z Windows:

    wslc run -d --rm -p 8000:8000 --name django helloworld-django
    
  8. Pokud chcete ověřit, že je kontejner spuštěný, vypíšete spuštěné kontejnery a zkontrolujete jeho protokoly:

    wslc container list
    wslc container logs django
    
  9. V systému Windows otevřete prohlížeč a přejděte na http://localhost:8000/, kde uvidíte aplikaci spuštěnou v jejím kontejneru. Spuštěním příkazu v kontejneru můžete také ověřit, že aplikace běží v Linuxu:

    wslc exec django uname
    

    Výsledek uname "Linux" potvrzuje, že kontejner běží v jádru WSL 2 Linux.

  10. Až budete hotovi, zastavte kontejner:

    wslc container stop django
    

Nyní jste úspěšně vytvořili a spustili kontejner Linuxu na Windows pomocí wslc.exeWSL 2, který můžete sestavit, spustit, nasadit nebo ladit společně s VS Code!

Řešení problémů

Zkontrolujte kontejner nebo obraz

Když se kontejner chová neočekávaně, poskytují příkazy inspect podrobné informace, logs které vám pomůžou s diagnostikou problému:

wslc container inspect <container-id>
wslc container logs <container-id>
wslc image inspect <image>

Uvolnění místa na disku

Image a zastavené kontejnery spotřebovávají místo na disku. Vyčištění prostředků, které už nepoužíváte:

# Remove all stopped containers
wslc container prune

# Remove unused images
wslc image prune

Další nápovědu k obecným problémům s řešením potíží ve WSL najdete v dokumentaci k řešení potíží .

Dodatečné zdroje