A WSL-tároló használatának első lépései

Ez a lépésről lépésre útmutató segít elkezdeni Linux-tárolók létrehozását és futtatását Windowson a wslc.exe használatával, amely a WSL-be beépített konténeres parancssori felület.

wslc.exe egy jól ismert parancssori felületet biztosít a tárolóalapú alkalmazások létrehozásához, szállításához és futtatásához.

A WSL-tárolók áttekintése

A tárolók alkalmazások létrehozására, üzembe helyezésére és futtatására szolgáló eszközök. A tárolók lehetővé teszik, hogy a fejlesztők az összes szükséges részből (kódtárak, keretrendszerek, függőségek stb.) csomagoljanak be egy alkalmazást, és az összeset egy csomagként küldjék el. A tároló használata biztosítja, hogy az alkalmazás ugyanúgy fusson, függetlenül attól, hogy a számítógépen milyen egyéni beállításokat vagy korábban telepített kódtárakat futtat, amelyek eltérhetnek az alkalmazás kódjának írásához és teszteléséhez használt géptől. Ez lehetővé teszi a fejlesztők számára, hogy a kódírásra összpontosítsanak anélkül, hogy aggódniuk kellene a rendszer miatt, amelyen a kód futni fog.

Előfeltételek

  • Telepített WSL-verzió, 2.9.3-as vagy újabb. Ez a verzió jelenleg csak előzetes kiadásként érhető el, ezért futtassa wsl --update --pre-release a lekéréséhez.
  • Telepítse a Visual Studio Code-ot(nem kötelező). Ez biztosítja a legjobb élményt, beleértve a Linux-disztribúcióhoz kapcsolódó tárolóalapú projektek kódjának és hibakeresésének lehetőségét.
  • Telepítse a Windows terminált(nem kötelező). Ez biztosítja a legjobb élményt, beleértve több terminál testreszabását és megnyitását ugyanazon a felületen (beleértve az Ubuntu, a Debian, a PowerShell, az Azure CLI vagy bármi mást, amit használni szeretne).

A wslc telepítése és ellenőrzése

wslc.exe része a WSL-nek, ezért nincs külön motor, amelyet telepíteni kell. A WSL 2.9.3-es vagy újabb verzióját igényli. Győződjön meg arról, hogy rendelkezik a WSL azon verziójával, amely tartalmazza azt:

  1. Ha még nem tette meg, telepítse a WSL-t, majd frissítsen a legújabb kiadás előtti verzióra a PowerShell megnyitásával, majd írja be a következőt:

    wsl --update --pre-release
    

    Megjegyzés:

    A WSL-tároló jelenleg csak a kiadás előtti buildekben érhető el (2.9.3-os vagy újabb verzió), ezért a --pre-release jelző szükséges. A WSL-verzióját a(z) wsl --version paranccsal ellenőrizheti.

  2. Ellenőrizze, hogy elérhető-e wslc.exe , és ellenőrizze annak verzióját a következő beírással:

    wslc version
    
  3. Tesztelje, hogy minden megfelelően működik-e egy egyszerű beépített rendszerkép futtatásával. A rendszer automatikusan lekérte a képet, ha még nem jelenik meg helyileg:

    wslc run --rm hello-world
    

    Egy "Hello" üzenetnek kell megjelennie, amely megerősíti, hogy a telepítés megfelelően működik.

Jótanács

Az alábbiakban néhány hasznos wslc parancsot talál:

  • Listázhatja a parancssori felületen elérhető parancsokat a wslc következő beírással: wslc --help
  • Egy adott parancs adatainak listázása a következőkkel: wslc <COMMAND> --help
  • Listázhatja a számítógépen lévő képeket a következőkkel: wslc image list
  • Listázhatja a számítógépen futó tárolókat a következőkkel: wslc container list vagy listázhatja az összes tárolót (beleértve a leállított tárolókat is) a következőkkel: wslc container list --all
  • A futó tárolók erőforrás-használati statisztikáinak megjelenítése a következőkkel: wslc stats

Az első konténerek futtatása

A(z) wslc.exe segítségével letölthet képfájlokat, futtathat tárolókat az előtérben vagy a háttérben, publikálhat portokat, és kapcsolatba léphet a futó tárolókkal. Próbáljon ki néhány parancsot a PowerShellből:

# 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

Mivel a nginx konténert a --rm használatával indították el, a rendszer automatikusan eltávolítja, amint leáll.

Saját tárolórendszerkép létrehozása és futtatása

Az alkalmazások wslc.exefejlesztésének megkezdéséhez javasoljuk, hogy használja a VS Code-ot és a WSL-bővítményt , hogy a linuxos fájlrendszeren szerkessze a projektet, és parancsokat futtasson wslc az integrált terminálról.

Hozzunk létre egy tárolórendszerképet egy meglévő alkalmazásprojekthez.

  1. Ebben a példában a Django „Helló világ!” alkalmazás oktatóanyagának forráskódját fogjuk használni a Python fejlesztői környezetben beállított dokumentumokban. Ezt a lépést kihagyhatja, ha a saját projekt forráskódját szeretné használni. A HelloWorld-Django webalkalmazás GitHub-ból való letöltéséhez nyisson meg egy WSL-terminált (például Ubuntu), és írja be a következőt:

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

    Megjegyzés:

    A kódot mindig ugyanabban a fájlrendszerben tárolja, amelyben eszközöket használ. Ez gyorsabb fájlhozzáférési teljesítményt eredményez. Ebben a példában linuxos disztribúciót (Ubuntu) használunk, és a projektfájlokat a WSL fájlrendszerben \\wsl$szeretnénk tárolni. A projektfájlok Windows fájlrendszeren való tárolása jelentősen lelassítaná a dolgokat, ha Linux-eszközöket használna a WSL-ben ezeknek a fájloknak a eléréséhez.

  2. A WSL-terminálról módosítsa a könyvtárakat a projekt forráskódmappájába:

    cd helloworld-django
    
  3. Nyissa meg a projektet a helyi WSL-bővítménykiszolgálón futó VS Code-ban a következő beírással:

    code .
    

    Ellenőrizze, hogy csatlakozik-e a WSL Linux-disztribúcióhoz a VS Code ablak bal alsó sarkában található zöld távoli kapcsolat jelzőjét ellenőrizve.

    VS Code WSL Távoli mutató

  4. Adjon hozzá egy Containerfile elemet a projekt gyökeréhez, amely leírja, hogyan kell elkészíteni a rendszerképet. A Django-példában a minimális Containerfile érték az alábbihoz hasonló lehet:

    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. A projekt mappájából (abból a könyvtárból, amely a Containerfile elemet tartalmazza) építse össze a képet a(z) wslc build paranccsal, és lássa el egy olyan névvel, amelyre később hivatkozhat:

    wslc build -t helloworld-django .
    
  6. Ellenőrizze, hogy a kép létrejött-e a képek listázásával:

    wslc image list
    
  7. Futtassa az újonnan létrehozott lemezképet konténerként, és tegye elérhetővé az alkalmazás portját, hogy Windowsból is elérhesse:

    wslc run -d --rm -p 8000:8000 --name django helloworld-django
    
  8. Annak ellenőrzéséhez, hogy a tároló fut-e, sorolja fel a futó tárolókat, és ellenőrizze a naplóit:

    wslc container list
    wslc container logs django
    
  9. Windows rendszerben nyisson meg egy böngészőt, és navigáljon ide: http://localhost:8000/, hogy megjelenítse a konténerében futó alkalmazást. Azt is ellenőrizheti, hogy az alkalmazás Linuxon fut-e, ha végrehajt egy parancsot a tárolón belül:

    wslc exec django uname
    

    A uname "Linux" eredménye megerősíti, hogy a tároló a WSL 2 Linux-kernelen fut.

  10. Amikor végzett, állítsa le a konténert:

    wslc container stop django
    

Most már sikeresen létrehoztál és futtattál egy Linux-konténert Windowson a wslc.exe használatával, WSL 2-alapokon, amelyet a VS Code-dal együtt létrehozhatsz, futtathatsz, üzembe helyezhetsz vagy hibakereshetsz!

Hibaelhárítás

Tároló vagy rendszerkép vizsgálata

Ha egy tároló váratlanul viselkedik, a inspect parancsok részletes logs információkat nyújtanak a probléma diagnosztizálásához:

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

Lemezterület visszaigénylése

A lemezképek és a leállított tárolók lemezterületet használnak fel. A már nem használt erőforrások eltávolítása:

# Remove all stopped containers
wslc container prune

# Remove unused images
wslc image prune

A WSL általános hibaelhárítási problémáival kapcsolatos további segítségért tekintse meg a hibaelhárítási dokumentumot.

További erőforrások