Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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-releasea 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:
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-releaseMegjegyzé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-releasejelző szükséges. A WSL-verzióját a(z)wsl --versionparanccsal ellenőrizheti.Ellenőrizze, hogy elérhető-e
wslc.exe, és ellenőrizze annak verzióját a következő beírással:wslc versionTesztelje, 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-worldEgy "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
wslckö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 listvagy 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.
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.gitMegjegyzé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.A WSL-terminálról módosítsa a könyvtárakat a projekt forráskódmappájába:
cd helloworld-djangoNyissa 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.
Adjon hozzá egy
Containerfileelemet a projekt gyökeréhez, amely leírja, hogyan kell elkészíteni a rendszerképet. A Django-példában a minimálisContainerfileé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"]A projekt mappájából (abból a könyvtárból, amely a
Containerfileelemet tartalmazza) építse össze a képet a(z)wslc buildparanccsal, és lássa el egy olyan névvel, amelyre később hivatkozhat:wslc build -t helloworld-django .Ellenőrizze, hogy a kép létrejött-e a képek listázásával:
wslc image listFuttassa 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-djangoAnnak 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 djangoWindows 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 unameA
uname"Linux" eredménye megerősíti, hogy a tároló a WSL 2 Linux-kernelen fut.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
Windows Subsystem for Linux