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ésenkénti útmutató segítséget nyújt a távoli konténerek fejlesztésének megkezdéséhez a Docker Desktop Windows-hoz készült WSL 2 (Windows Alrendszer Linuxhoz, 2-es verzió) beállításával.
A WindowsHoz készült Docker Desktop fejlesztői környezetet biztosít dockerized alkalmazások létrehozásához, szállításához és futtatásához. A WSL 2-alapú motor engedélyezésével linuxos és Windows rendszerű tárolókat is futtathat a Docker Desktopban ugyanazon a gépen. (A Docker Desktop személyes használatra és kisvállalkozások számára ingyenes, a Pro, a Csapat vagy a Vállalati díjszabással kapcsolatos információkért lásd a Docker webhely gyakori kérdéseket.
Megjegyzés:
Javasoljuk, hogy a Docker Desktopot a Windows és a Windows alrendszer linuxos integrációja miatt használja. Bár a Docker Desktop támogatja a Linux- és a Windows-tárolók futtatását is, mindkettőt nem futtathatja egyszerre. Linux- és Windows-tárolók egyidejű futtatásához külön Docker-példányt kell telepítenie és futtatnia a WSL-ben. Ha egyidejű tárolókat kell futtatnia, vagy inkább közvetlenül a Linux-disztribúcióban szeretne telepíteni egy tárolómotort, kövesse az adott tárolószolgáltatás linuxos telepítési utasításait, például a Docker Engine telepítése az Ubuntu-on vagy a Podman telepítése Linux-tárolók futtatásához.
A Docker-tárolók áttekintése
A Docker egy olyan eszköz, amellyel tárolók használatával hozhat létre, helyezhet üzembe és futtathat alkalmazásokat. 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.
A Docker-tárolók hasonlóak a virtuális gépekhez, de nem hoznak létre teljes virtuális operációs rendszert. Ehelyett a Docker lehetővé teszi az alkalmazás számára, hogy ugyanazt a Linux-kernelt használja, mint a rendszeren, amelyen fut. Ez lehetővé teszi, hogy az alkalmazáscsomag csak olyan alkatrészeket igényeljen, amelyek még nincsenek a gazdaszámítógépen, csökkentve a csomag méretét és javítva a teljesítményt.
A tárolók népszerűségének egy másik oka a folyamatos rendelkezésre állás, a Docker-tárolók olyan eszközökkel való használata, mint a Kubernetes. Ez lehetővé teszi az alkalmazástároló több verziójának létrehozását különböző időpontokban. Ahelyett, hogy egy teljes rendszert kellene lekontolni frissítések vagy karbantartás céljából, minden tároló (és annak adott mikroszolgáltatásai) menet közben lecserélhetők. Az összes frissítéssel előkészíthet egy új tárolót, beállíthatja a tárolót éles környezetben, és csak az új tárolóra mutathat, ha elkészült. Az alkalmazás különböző verzióit tárolók használatával is archiválhatja, és szükség esetén biztonsági tartalékként is futtathatja őket.
További információ: Bevezetés a Docker-tárolók használatába.
Előfeltételek
- A WSL 1.1.3.0-s vagy újabb verziója.
- Windows 11 64 bites: Otthoni vagy Pro 21H2-es vagy újabb verzió, nagyvállalati vagy oktatási verzió 21H2 vagy újabb.
- Windows 10 64 bites rendszer (ajánlott): Otthoni vagy Pro verzió 22H2 (19045-ös build) vagy újabb, Vállalati vagy Oktatási verzió 22H2 (19045-ös build) vagy újabb. (Minimum): Home vagy Pro 21H2 (build: 19044) vagy újabb, vagy Enterprise vagy Education 21H2 (build 19044) vagy újabb. Windows frissítése
- 64 bites processzor második szintű címfordítással (SLAT).
- 4 GB rendszer RAM.
- Engedélyezze a hardvervirtualizálást a BIOS-ban.
- Telepítse a WSL-t, és állítson be egy felhasználónevet és jelszót a WSL 2-ben futó Linux-disztribúcióhoz.
- Telepítse a Visual Studio Code-ot(nem kötelező). Ez biztosítja a legjobb élményt, beleértve a távoli Docker-tárolón belüli kód és hibakeresés lehetőségét, valamint a Linux-disztribúcióhoz való csatlakozást.
- Telepítse a Windows Terminalt(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).
- Regisztráljon docker-azonosítóra a Docker Hubban(nem kötelező).
- A használati feltételek frissítéseit a Docker Desktop licencszerződésében találja.
További információért lásd a Docker dokumentáció Windows rendszerre a Docker Desktop telepítési követelményeit.
A Docker Windows Serverre való telepítésének megismeréséhez tekintse meg az Első lépések: Windows előkészítése tárolókhoz című témakört.
Megjegyzés:
A WSL a WSL 1. vagy a WSL 2. verziójában egyaránt futtathat disztribúciókat. Ezt a PowerShell megnyitásával és a következő beírásával ellenőrizheti: wsl -l -v
. Győződjön meg arról, hogy a disztribúció wSL 2 használatára van beállítva a következő beírással: wsl --set-version <distro> 2
. Cserélje le <distro>
a disztribúció nevét (pl. Ubuntu 18.04).
A WSL 1-es verziójában a Windows és a Linux közötti alapvető különbségek miatt a Docker Motor nem tudott közvetlenül a WSL-ben futni, ezért a Docker csapata kifejlesztett egy alternatív megoldást Hyper-V virtuális gépek és LinuxKit használatával. Mivel azonban a WSL 2 már teljes rendszerhívási kapacitással rendelkező Linux-kernelen fut, a Docker teljes mértékben futtatható a WSL 2-ben. Ez azt jelenti, hogy a Linux-tárolók natív módon, emuláció nélkül is futtathatók, ami jobb teljesítményt és interoperabilitást eredményez a Windows és a Linux rendszerű eszközök között.
A Docker Desktop telepítése
A WindowsHoz készült Docker Desktopban támogatott WSL 2 háttérrendszerrel Linux-alapú fejlesztői környezetben dolgozhat, és Linux-alapú tárolókat hozhat létre, miközben a Visual Studio Code-ot használhatja a kódszerkesztéshez és a hibakereséshez, valamint futtathatja a tárolót a Windows Microsoft Edge böngészőben.
A Docker telepítése (a WSL telepítése után):
Töltse le a Docker Desktopot , és kövesse a telepítési utasításokat.
A telepítést követően indítsa el a Docker Desktopot a Windows Start menüből, majd válassza a Docker ikont a tálcán lévő rejtett ikonok menüjéből. Kattintson a jobb gombbal az ikonra a Docker-parancsok menüjének megjelenítéséhez, és válassza a "Beállítások" lehetőséget.
Győződjön meg arról, hogy a "WSL 2-alapú motor használata" jelölőnégyzet be van jelölve azÁltalános>.
Válassza ki a telepített WSL 2-disztribúciók közül, amelyeken engedélyezni szeretné a Docker-integrációt a következő lépéssel: Settings>Resources>WSL Integration.
A Docker telepítésének ellenőrzéséhez nyisson meg egy WSL-disztribúciót (pl. Ubuntu), és jelenítse meg a verziót és a buildszámot a következő beírással:
docker --version
Tesztelje, hogy a telepítés megfelelően működik-e egy egyszerű, beépített Docker-rendszerkép futtatásával a következő használatával:
docker run hello-world
Jótanács
Az alábbiakban néhány hasznos Docker-parancsot ismerhet meg:
- Listázhatja a Docker parancssori felületén elérhető parancsokat a következő beírással:
docker
- Egy adott parancs adatainak listázása a következőkkel:
docker <COMMAND> --help
- Sorolja fel a Docker-képeket a számítógépén (amely jelenleg csak a hello-world képe), használja a következő parancsot:
docker image ls --all
- Listázhatja a számítógépen lévő tárolókat a következőkkel:
docker container ls --all
vagydocker ps -a
(a -a az összes jelölő megjelenítése nélkül csak a futó tárolók jelennek meg) - Sorolja fel a Docker telepítésével kapcsolatos rendszerszintű információkat, beleértve a WSL 2 környezetében elérhető statisztikákat és erőforrásokat (CPU &memória), a következőkkel:
docker info
Fejlesztés távoli tárolókban a VS Code használatával
A Docker és a WSL 2 használatával történő alkalmazások fejlesztésének megkezdéséhez javasoljuk a VS Code használatát a WSL, a Dev Containers és a Docker bővítményekkel együtt.
Telepítse a VS Code WSL-bővítményt. Ez a bővítmény lehetővé teszi a WSL-n futó Linux-projekt megnyitását a VS Code-ban (nem kell aggódnia az elérési útokkal kapcsolatos problémáktól, a bináris kompatibilitástól vagy az operációs rendszerek közötti egyéb kihívásoktól).
Telepítse a VS Code Dev Containers bővítményt. Ez a bővítmény lehetővé teszi a projektmappa vagy -adattár tárolón belüli megnyitását, kihasználva a Visual Studio Code teljes funkciókészletét, hogy a tárolón belül végezze el a fejlesztési munkát.
Telepítse a VS Code Docker-bővítményt. Ez a bővítmény hozzáadja a tárolóalapú alkalmazások VS Code-ból való létrehozásához, kezeléséhez és üzembe helyezéséhez szükséges funkciókat. (A tároló fejlesztői környezetként való használatához szüksége van a Dev Containers bővítményre.)
Használjuk a Dockert egy fejlesztési tároló létrehozásához egy meglévő alkalmazásprojekthez.
Ebben a példában a Hello World Django-hoz készült oktatóanyagom forráskódját fogom 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. Ha le szeretné tölteni HelloWorld-Django webalkalmazásomat a GitHubról, nyisson meg egy WSL-terminált (például Ubuntu), és írja be a következőt:
git clone https://github.com/mattwojo/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.A WSL-terminálról módosítsa a könyvtárakat a projekt forráskódmappájába:
cd helloworld-django
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.
A VS Code parancssávjában (Ctrl + Shift + P) adja meg a következőt: Dev Containers: Újra megnyitás konténerben, mivel a WSL-bővítmény használatával már megnyitott mappát használunk. Másik lehetőségként használja a Dev Containers: Mappa megnyitása a Tárolóban... lehetőséget egy WSL-mappa kiválasztásához a helyi
\\wsl$
megosztás használatával (a Windows oldaláról). További részletekért tekintse meg a Visual Studio Code rövid útmutatóját: Nyisson meg egy meglévő mappát egy tárolóban . Ha ezek a parancsok nem jelennek meg a gépelés megkezdésekor, ellenőrizze, hogy telepítette-e a fent hivatkozott Dev Containers bővítményt.Válassza ki a tárolóba felvenni kívánt projektmappát. Az én esetemben ez a következő:
\\wsl\Ubuntu-20.04\home\mattwojo\repos\helloworld-django\
Megjelenik a tárolódefiníciók listája, mivel a projektmappában (adattárban) még nincs fejlesztői tárolókonfiguráció. A megjelenő tárolókonfiguráció-definíciók listája a projekt típusa alapján lesz szűrve. A Django-projektemhez a Python 3-at választom.
Megnyílik a VS Code új példánya, megkezdi az új rendszerkép összeállítását, és a build befejezése után elindítja a tárolót. Látni fogja, hogy egy új
.devcontainer
mappa jelent meg, amely tárolókonfigurációs információkat tartalmaz egyDockerfile
ésdevcontainer.json
fájlban.Annak ellenőrzéséhez, hogy a projekt továbbra is csatlakozik-e a WSL-hez és egy tárolóhoz, nyissa meg a VS Code integrált terminálját (Ctrl + Shift + ~). Az operációs rendszer ellenőrzéséhez írja be a következőt:
uname
és a Python-verziót a következővel:python3 --version
. Láthatja, hogy az uname "Linux" néven jött vissza, így továbbra is csatlakozik a WSL 2 motorhoz, és a Python-verziószám azon tárolókonfiguráción alapul, amelyek eltérhetnek a WSL-disztribúcióra telepített Python-verziótól.Ha a Visual Studio Code használatával szeretné futtatni és hibakeresésre használni az alkalmazást a tárolóban, először nyissa meg a Futtatás menüt (Ctrl+Shift+D billentyűkombinációt, vagy válassza a bal szélső menüsáv fülét). Ezután válassza a Futtatás és hibakeresés lehetőséget a hibakeresési konfiguráció kiválasztásához, és válassza ki a projektnek leginkább megfelelő konfigurációt (a példában ez a "Django" lesz). Ezzel létrehoz egy
launch.json
fájlt a.vscode
projekt mappájában az alkalmazás futtatására vonatkozó útmutatással.A VS Code-ban válassza a futtatása>Start hibakeresés lehetőséget (vagy nyomja le az F5 billentyűt). Ezzel egy terminál nyílik meg a VS Code-ban, és a következőhöz hasonló eredményt kell látnia: "A fejlesztői kiszolgáló http://127.0.0.1:8000/ elindítása. A kiszolgálót a CONTROL-C használatával állíthatja le." Tartsa lenyomva a Control billentyűt, és válassza ki a megjelenített címet, hogy megnyissa az alkalmazást az alapértelmezett webböngészőjében, és láthassa, hogyan fut a projekt a tárolójában.
Sikeresen konfigurált egy távoli fejlesztési tárolót a WSL 2 háttérrendszerrel működő Docker Desktop használatával, amelybe a VS Code használatával kódolhat, hozhat létre, futtathat, telepíthet vagy hibakeresést végezhet!
Hibaelhárítás
A WSL Docker-kontextus elavult állapotú
Ha a Docker wSL-hez készült korai tech előzetes verzióját használta, előfordulhat, hogy egy "wsl" nevű Docker-környezet elavult, és már nincs használatban. A következő paranccsal ellenőrizheti: docker context ls
. A parancs hibáinak elkerülése érdekében eltávolíthatja ezt a "wsl" környezetet: docker context rm wsl
mivel az alapértelmezett környezetet szeretné használni a Windows és a WSL2 esetében is.
Az elavult wsl-környezettel kapcsolatos lehetséges hibák a következők lehetnek: docker wsl open //./pipe/docker_wsl: The system cannot find the file specified.
vagy error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_wsl/v1.40/images/json?all=1: open //./pipe/docker_wsl: The system cannot find the file specified.
A problémáról további információt a Docker beállítása a Windows System for Linux (WSL2) rendszeren Windows 10-en című témakörben talál.
Probléma a Docker-lemezképtároló mappa megkeresésével
A Docker két disztribúciós mappát hoz létre az adatok tárolásához:
- \wsl$\docker-desktop
- \wsl$\docker-desktop-data
Ezeket a mappákat a WSL Linux-disztribúció megnyitásával és a következő beírással találja meg: explorer.exe .
a mappa megtekintéséhez a Windows Fájlkezelőben. Írja be a következőt: \\wsl\<distro name>\mnt\wsl
, és cserélje ki <distro name>
a terjesztés nevével (például Ubuntu-20.04), hogy meg tudja tekinteni ezeket a mappákat.
Ha többet szeretne megtudni a Docker-tárolóhelyek WSL-ben való megkereséséről, tekintse meg ezt a problémát a WSL-adattárban vagy a StackOverflow-bejegyzésben.
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
- Docker-dokumentumok: Ajánlott eljárások a Docker Desktophoz a WSL 2 használatával
- Visszajelzés a Windows-hoz készült Docker Desktopról: Hiba bejelentése
- VS Code Blog: Útmutató fejlesztési környezet kiválasztásához
- VS Code Blog: A Docker használata a WSL 2-ben
- VS Code Blog: Távoli tárolók használata a WSL 2-ben
- Hanselminutes Podcast: Hogyan teszi Simon Ferquel a Docker-t kedveltté a fejlesztők számára
Windows Subsystem for Linux