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.
Jegyzet
Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.
Figyelmeztetés
A ASP.NET Core ezen verziója már nem támogatott. További információt a .NET és a .NET Core támogatási szabályzatában talál. Az aktuális kiadást lásd ennek a cikknek a .NET 9-es verziójában .
Ez a cikk bemutatja, hogyan futtathat ASP.NET Core-alkalmazást Docker-tárolókban.
A Windows Home Edition nem támogatja a Hyper-V-t, és Hyper-V szükséges a Dockerhez.
A „.NET-alkalmazás tárolóba helyezése dotnet publish segítségével” című cikkben részletes információkat találhat arról, hogyan lehet tárolóba helyezni és közzétenni egy .NET-alkalmazást a dotnet publish segítségével.
ASP.NET Core Docker-rendszerképek
Ebben az oktatóanyagban letölt egy ASP.NET Core-mintaalkalmazást, és docker-tárolókban futtatja. A minta Linux- és Windows-tárolókkal is működik.
A minta Dockerfile a Docker többfázisú buildelési funkcióját használja a különböző tárolókban való buildeléshez és futtatáshoz. A build- és futtatási tárolók a Microsoft Által a Docker Hubban biztosított képekből jönnek létre:
dotnet/sdkA minta ezt a képet használja az alkalmazás létrehozásához. A rendszerkép tartalmazza a .NET SDK-t, amely tartalmazza a parancssori eszközöket (CLI). A rendszerkép helyi fejlesztésre, hibakeresésre és egységtesztelésre van optimalizálva. A fejlesztéshez és fordításhoz telepített eszközök viszonylag nagy méretűvé teszik a képet.
dotnet/aspnetA minta ezt a képet használja az alkalmazás futtatásához. A rendszerkép tartalmazza a ASP.NET Core-futtatókörnyezetet és a kódtárakat, és az éles környezetben futó alkalmazások futtatására van optimalizálva. Az üzembe helyezés és az alkalmazásindítás sebességére tervezett kép viszonylag kicsi, így a hálózati teljesítmény a Docker Registry-től a Docker-gazdagépig optimalizálva van. Csak az alkalmazás futtatásához szükséges bináris fájlok és tartalmak lesznek átmásolva a tárolóba. Az alkalmazás indításáig a lehető leggyorsabban készen áll a tartalom a futtatásra. A Docker-modellben nincs szükség dinamikus kódfordításra.
Előfeltételek
Docker-ügyfél 18.03-s vagy újabb verziója
A mintaalkalmazás letöltése
Töltse le a mintát a .NET Docker-adattár klónozásával:
git clone https://github.com/dotnet/dotnet-docker
Az alkalmazás helyi futtatása
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a következő parancsot az alkalmazás helyi létrehozásához és futtatásához:
dotnet runNyissa meg a böngészőben a
http://localhost:<port>-t az alkalmazás teszteléséhez.Az alkalmazás leállításához nyomja le a Ctrl+C billentyűkombinációt a parancssorban.
Futtatás Linux-tárolóban vagy Windows-tárolóban
Linux-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Linux-tárolókra való váltást.
Windows-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Váltás Windows-tárolókra lehetőséget.
Lépjen a Dockerfile mappába a dotnet-docker/samples/aspnetapp címen.
Futtassa a következő parancsokat a minta létrehozásához és futtatásához a Dockerben:
docker build -t aspnetapp . docker run -it --rm -p <port>:8080 --name aspnetcore_sample aspnetappA
buildparancsargumentumok:- Nevezze el a képfájlt aspnetapp-nak.
- Keresse meg a Dockerfile-t az aktuális mappában (az időszak végén).
A futtatási parancs argumentumai:
- Állítson be egy pszeudo-TTY-t, és tartsa nyitva akkor is, ha nincs csatlakoztatva. (Ugyanaz a hatás, mint
--interactive --tty.) - Automatikusan távolítsa el a tárolót kilépéskor.
- A helyi gépen található
<port>térképezése a tároló 8080-as portra. - Nevezze el a tárolót aspnetcore_sample.
- Adja meg az aspnetapp képet.
Nyissa meg a böngészőben a
http://localhost:<port>-t az alkalmazás teszteléséhez.
Manuális létrehozás és üzembe helyezés
Bizonyos esetekben érdemes lehet egy alkalmazást üzembe helyezni egy tárolóban a futtatáskor szükséges eszközök másolásával. Ez a szakasz bemutatja, hogyan lehet manuálisan üzembe helyezni.
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a dotnet publish parancsot:
dotnet publish -c Release -o publishedA parancs argumentumai:
- Hozza létre az alkalmazást kiadási módban (az alapértelmezett hibakeresési mód).
- Hozza létre az objektumokat a közzétett mappában.
Nyisd meg az alkalmazást.
Windows:
dotnet published\aspnetapp.dllLinux:
dotnet published/aspnetapp.dll
Böngésszen el a
http://localhost:<port>-ra a kezdőlap megtekintéséhez.
Ha a manuálisan közzétett alkalmazást egy Docker-tárolóban szeretné használni, hozzon létre egy új Docker-fájlt , és a docker build . paranccsal hozzon létre egy lemezképet.
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az új kép megtekintéséhez használja a docker images parancsot.
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:10.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak a docker build parancs utolsó futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
További erőforrások
- .NET-alkalmazás tárolóba helyezése dotnet-közzététellel
- Docker buildelési parancs
- Docker-futtatási parancs
- ASP.NET Core Docker-minta (Az oktatóanyagban használt).)
- A ASP.NET Core konfigurálása proxykiszolgálókkal és terheléselosztókkal való együttműködésre
- Visual Studio Docker Tools használata
- Hibakeresés a Visual Studio Code-tal
- GC a Docker és a kis tárolók használatával
- System.IO.IOException: Elérte a konfigurált felhasználói korlátot (128) az inotify példányok számára vonatkozóan
- Docker-rendszerképek frissítései
Következő lépések
A mintaalkalmazást tartalmazó Git-adattár dokumentációt is tartalmaz. Az adattárban elérhető erőforrások áttekintéséhez lásd a README fájlt . Megtudhatja, hogyan implementálhatja a HTTPS-t:
ASP.NET Core Docker-rendszerképek
Ebben az oktatóanyagban letölt egy ASP.NET Core-mintaalkalmazást, és docker-tárolókban futtatja. A minta Linux- és Windows-tárolókkal is működik.
A minta Dockerfile a Docker többfázisú buildelési funkcióját használja a különböző tárolókban való buildeléshez és futtatáshoz. A build- és futtatási tárolók a Microsoft Által a Docker Hubban biztosított képekből jönnek létre:
dotnet/sdkA minta ezt a képet használja az alkalmazás létrehozásához. A rendszerkép tartalmazza a .NET SDK-t, amely tartalmazza a parancssori eszközöket (CLI). A rendszerkép helyi fejlesztésre, hibakeresésre és egységtesztelésre van optimalizálva. A fejlesztéshez és fordításhoz telepített eszközök viszonylag nagy méretűvé teszik a képet.
dotnet/aspnetA minta ezt a képet használja az alkalmazás futtatásához. A rendszerkép tartalmazza a ASP.NET Core-futtatókörnyezetet és a kódtárakat, és az éles környezetben futó alkalmazások futtatására van optimalizálva. Az üzembe helyezés és az alkalmazásindítás sebességére tervezett kép viszonylag kicsi, így a hálózati teljesítmény a Docker Registry-től a Docker-gazdagépig optimalizálva van. Csak az alkalmazás futtatásához szükséges bináris fájlok és tartalmak lesznek átmásolva a tárolóba. Az alkalmazás indításáig a lehető leggyorsabban készen áll a tartalom a futtatásra. A Docker-modellben nincs szükség dinamikus kódfordításra.
Előfeltételek
Docker-ügyfél 18.03-s vagy újabb verziója
A mintaalkalmazás letöltése
Töltse le a mintát a .NET Docker-adattár klónozásával:
git clone https://github.com/dotnet/dotnet-docker
Az alkalmazás helyi futtatása
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a következő parancsot az alkalmazás helyi létrehozásához és futtatásához:
dotnet runNyissa meg a böngészőben a
http://localhost:<port>-t az alkalmazás teszteléséhez.Az alkalmazás leállításához nyomja le a Ctrl+C billentyűkombinációt a parancssorban.
Futtatás Linux-tárolóban vagy Windows-tárolóban
Linux-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Linux-tárolókra való váltást.
Windows-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Váltás Windows-tárolókra lehetőséget.
Lépjen a Dockerfile mappába a dotnet-docker/samples/aspnetapp címen.
Futtassa a következő parancsokat a minta létrehozásához és futtatásához a Dockerben:
docker build -t aspnetapp . docker run -it --rm -p <port>:8080 --name aspnetcore_sample aspnetappA
buildparancsargumentumok:- Nevezze el a képfájlt aspnetapp-nak.
- Keresse meg a Dockerfile-t az aktuális mappában (az időszak végén).
A futtatási parancs argumentumai:
- Állítson be egy pszeudo-TTY-t, és tartsa nyitva akkor is, ha nincs csatlakoztatva. (Ugyanaz a hatás, mint
--interactive --tty.) - Automatikusan távolítsa el a tárolót kilépéskor.
- A helyi gépen található
<port>térképezése a tároló 8080-as portra. - Nevezze el a tárolót aspnetcore_sample.
- Adja meg az aspnetapp képet.
Nyissa meg a böngészőben a
http://localhost:<port>-t az alkalmazás teszteléséhez.
Manuális létrehozás és üzembe helyezés
Bizonyos esetekben érdemes lehet egy alkalmazást üzembe helyezni egy tárolóban a futtatáskor szükséges eszközök másolásával. Ez a szakasz bemutatja, hogyan lehet manuálisan üzembe helyezni.
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a dotnet publish parancsot:
dotnet publish -c Release -o publishedA parancs argumentumai:
- Hozza létre az alkalmazást kiadási módban (az alapértelmezett hibakeresési mód).
- Hozza létre az objektumokat a közzétett mappában.
Nyisd meg az alkalmazást.
Windows:
dotnet published\aspnetapp.dllLinux:
dotnet published/aspnetapp.dll
Böngésszen el a
http://localhost:<port>-ra a kezdőlap megtekintéséhez.
Ha a manuálisan közzétett alkalmazást egy Docker-tárolóban szeretné használni, hozzon létre egy új Docker-fájlt , és a docker build . paranccsal hozzon létre egy lemezképet.
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az új kép megtekintéséhez használja a docker images parancsot.
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:9.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak az docker build parancs legutóbbi futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
További erőforrások
- .NET-alkalmazás tárolóba helyezése dotnet-közzététellel
- Docker buildelési parancs
- Docker-futtatási parancs
- ASP.NET Core Docker-minta (Az oktatóanyagban használt).)
- A ASP.NET Core konfigurálása proxykiszolgálókkal és terheléselosztókkal való együttműködésre
- Visual Studio Docker Tools használata
- Hibakeresés a Visual Studio Code-tal
- GC a Docker és a kis tárolók használatával
- System.IO.IOException: Elérte a konfigurált felhasználói korlátot (128) az inotify példányok számára vonatkozóan
- Docker-rendszerképek frissítései
Következő lépések
A mintaalkalmazást tartalmazó Git-adattár dokumentációt is tartalmaz. Az adattárban elérhető erőforrások áttekintéséhez lásd a README fájlt . Megtudhatja, hogyan implementálhatja a HTTPS-t:
ASP.NET Core Docker-rendszerképek
Ebben az oktatóanyagban letölt egy ASP.NET Core-mintaalkalmazást, és docker-tárolókban futtatja. A minta Linux- és Windows-tárolókkal is működik.
A minta Dockerfile a Docker többfázisú buildelési funkcióját használja a különböző tárolókban való buildeléshez és futtatáshoz. A build- és futtatási tárolók a Microsoft Által a Docker Hubban biztosított képekből jönnek létre:
dotnet/sdkA minta ezt a képet használja az alkalmazás létrehozásához. A rendszerkép tartalmazza a .NET SDK-t, amely tartalmazza a parancssori eszközöket (CLI). A rendszerkép helyi fejlesztésre, hibakeresésre és egységtesztelésre van optimalizálva. A fejlesztéshez és fordításhoz telepített eszközök viszonylag nagy méretűvé teszik a képet.
dotnet/aspnetA minta ezt a képet használja az alkalmazás futtatásához. A rendszerkép tartalmazza a ASP.NET Core-futtatókörnyezetet és a kódtárakat, és az éles környezetben futó alkalmazások futtatására van optimalizálva. Az üzembe helyezés és az alkalmazásindítás sebességére tervezett kép viszonylag kicsi, így a hálózati teljesítmény a Docker Registry-től a Docker-gazdagépig optimalizálva van. Csak az alkalmazás futtatásához szükséges bináris fájlok és tartalmak lesznek átmásolva a tárolóba. Az alkalmazás indításáig a lehető leggyorsabban készen áll a tartalom a futtatásra. A Docker-modellben nincs szükség dinamikus kódfordításra.
Előfeltételek
Docker-ügyfél 18.03-s vagy újabb verziója
A mintaalkalmazás letöltése
Töltse le a mintát a .NET Docker-adattár klónozásával:
git clone https://github.com/dotnet/dotnet-docker
Az alkalmazás helyi futtatása
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a következő parancsot az alkalmazás helyi létrehozásához és futtatásához:
dotnet runNyissa meg a böngészőben a
http://localhost:<port>-t az alkalmazás teszteléséhez.Az alkalmazás leállításához nyomja le a Ctrl+C billentyűkombinációt a parancssorban.
Futtatás Linux-tárolóban vagy Windows-tárolóban
Linux-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Linux-tárolókra való váltást.
Windows-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Váltás Windows-tárolókra lehetőséget.
Lépjen a Dockerfile mappába a dotnet-docker/samples/aspnetapp címen.
Futtassa a következő parancsokat a minta létrehozásához és futtatásához a Dockerben:
docker build -t aspnetapp . docker run -it --rm -p <port>:8080 --name aspnetcore_sample aspnetappA
buildparancsargumentumok:- Nevezze el a képfájlt aspnetapp-nak.
- Keresse meg a Dockerfile-t az aktuális mappában (az időszak végén).
A futtatási parancs argumentumai:
- Állítson be egy pszeudo-TTY-t, és tartsa nyitva akkor is, ha nincs csatlakoztatva. (Ugyanaz a hatás, mint
--interactive --tty.) - Automatikusan távolítsa el a tárolót kilépéskor.
- A helyi gépen található
<port>térképezése a tároló 8080-as portra. - Nevezze el a tárolót aspnetcore_sample.
- Adja meg az aspnetapp képet.
Nyissa meg a böngészőben a
http://localhost:<port>-t az alkalmazás teszteléséhez.
Manuális létrehozás és üzembe helyezés
Bizonyos esetekben érdemes lehet egy alkalmazást üzembe helyezni egy tárolóban a futtatáskor szükséges eszközök másolásával. Ez a szakasz bemutatja, hogyan lehet manuálisan üzembe helyezni.
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a dotnet publish parancsot:
dotnet publish -c Release -o publishedA parancs argumentumai:
- Hozza létre az alkalmazást kiadási módban (az alapértelmezett hibakeresési mód).
- Hozza létre az objektumokat a közzétett mappában.
Nyisd meg az alkalmazást.
Windows:
dotnet published\aspnetapp.dllLinux:
dotnet published/aspnetapp.dll
Böngésszen el a
http://localhost:<port>-ra a kezdőlap megtekintéséhez.
Ha a manuálisan közzétett alkalmazást egy Docker-tárolóban szeretné használni, hozzon létre egy új Docker-fájlt , és a docker build . paranccsal hozzon létre egy lemezképet.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az új kép megtekintéséhez használja a docker images parancsot.
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak az docker build parancs legutóbbi futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
További erőforrások
- .NET-alkalmazás tárolóba helyezése dotnet-közzététellel
- Docker buildelési parancs
- Docker-futtatási parancs
- ASP.NET Core Docker-minta (Az oktatóanyagban használt).)
- A ASP.NET Core konfigurálása proxykiszolgálókkal és terheléselosztókkal való együttműködésre
- Visual Studio Docker Tools használata
- Hibakeresés a Visual Studio Code-tal
- GC a Docker és a kis tárolók használatával
- System.IO.IOException: Elérte a konfigurált felhasználói korlátot (128) az inotify példányok számára vonatkozóan
- Docker-rendszerképek frissítései
Következő lépések
A mintaalkalmazást tartalmazó Git-adattár dokumentációt is tartalmaz. Az adattárban elérhető erőforrások áttekintéséhez lásd a README fájlt . Megtudhatja, hogyan implementálhatja a HTTPS-t:
ASP.NET Core Docker-rendszerképek
Ebben az oktatóanyagban letölt egy ASP.NET Core-mintaalkalmazást, és docker-tárolókban futtatja. A minta Linux- és Windows-tárolókkal is működik.
A minta Dockerfile a Docker többfázisú buildelési funkcióját használja a különböző tárolókban való buildeléshez és futtatáshoz. A build- és futtatási tárolók a Microsoft Által a Docker Hubban biztosított képekből jönnek létre:
dotnet/sdkA minta ezt a képet használja az alkalmazás létrehozásához. A rendszerkép tartalmazza a .NET SDK-t, amely tartalmazza a parancssori eszközöket (CLI). A rendszerkép helyi fejlesztésre, hibakeresésre és egységtesztelésre van optimalizálva. A fejlesztéshez és fordításhoz telepített eszközök viszonylag nagy méretűvé teszik a képet.
dotnet/aspnetA minta ezt a képet használja az alkalmazás futtatásához. A rendszerkép tartalmazza a ASP.NET Core-futtatókörnyezetet és a kódtárakat, és az éles környezetben futó alkalmazások futtatására van optimalizálva. Az üzembe helyezés és az alkalmazásindítás sebességére tervezett kép viszonylag kicsi, így a hálózati teljesítmény a Docker Registry-től a Docker-gazdagépig optimalizálva van. Csak az alkalmazás futtatásához szükséges bináris fájlok és tartalmak lesznek átmásolva a tárolóba. Az alkalmazás indításáig a lehető leggyorsabban készen áll a tartalom a futtatásra. A Docker-modellben nincs szükség dinamikus kódfordításra.
Előfeltételek
Docker-ügyfél 18.03-s vagy újabb verziója
A mintaalkalmazás letöltése
Töltse le a mintát a .NET Docker-adattár klónozásával:
git clone https://github.com/dotnet/dotnet-docker
Az alkalmazás helyi futtatása
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a következő parancsot az alkalmazás helyi létrehozásához és futtatásához:
dotnet runNyissa meg a böngészőben a
http://localhost:5000-t az alkalmazás teszteléséhez.Az alkalmazás leállításához nyomja le a Ctrl+C billentyűkombinációt a parancssorban.
Futtatás Linux-tárolóban vagy Windows-tárolóban
Linux-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Linux-tárolókra való váltást.
Windows-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Váltás Windows-tárolókra lehetőséget.
Lépjen a Dockerfile mappába a dotnet-docker/samples/aspnetapp címen.
Futtassa a következő parancsokat a minta létrehozásához és futtatásához a Dockerben:
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetappA
buildparancsargumentumok:- Nevezze el a képfájlt aspnetapp-nak.
- Keresse meg a Dockerfile-t az aktuális mappában (az időszak végén).
A futtatási parancs argumentumai:
- Állítson be egy pszeudo-TTY-t, és tartsa nyitva akkor is, ha nincs csatlakoztatva. (Ugyanaz a hatás, mint
--interactive --tty.) - Automatikusan távolítsa el a tárolót kilépéskor.
- Térképezze fel a helyi gépen az 5000-es portot a tárolóban lévő 80-as portra.
- Nevezze el a tárolót aspnetcore_sample.
- Adja meg az aspnetapp képet.
Nyissa meg a böngészőben a
http://localhost:5000-t az alkalmazás teszteléséhez.
Manuális létrehozás és üzembe helyezés
Bizonyos esetekben érdemes lehet egy alkalmazást üzembe helyezni egy tárolóban a futtatáskor szükséges eszközök másolásával. Ez a szakasz bemutatja, hogyan lehet manuálisan üzembe helyezni.
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a dotnet publish parancsot:
dotnet publish -c Release -o publishedA parancs argumentumai:
- Hozza létre az alkalmazást kiadási módban (az alapértelmezett hibakeresési mód).
- Hozza létre az objektumokat a közzétett mappában.
Nyisd meg az alkalmazást.
Windows:
dotnet published\aspnetapp.dllLinux:
dotnet published/aspnetapp.dll
Böngésszen el a
http://localhost:5000-ra a kezdőlap megtekintéséhez.
Ha a manuálisan közzétett alkalmazást egy Docker-tárolóban szeretné használni, hozzon létre egy új Docker-fájlt , és a docker build . paranccsal hozzon létre egy lemezképet.
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az új kép megtekintéséhez használja a docker images parancsot.
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak az docker build parancs legutóbbi futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
További erőforrások
- .NET-alkalmazás tárolóba helyezése dotnet-közzététellel
- Docker buildelési parancs
- Docker-futtatási parancs
- ASP.NET Core Docker-minta (Az oktatóanyagban használt).)
- A ASP.NET Core konfigurálása proxykiszolgálókkal és terheléselosztókkal való együttműködésre
- Visual Studio Docker Tools használata
- Hibakeresés a Visual Studio Code-tal
- GC a Docker és a kis tárolók használatával
- System.IO.IOException: Elérte a konfigurált felhasználói korlátot (128) az inotify példányok számára vonatkozóan
- Docker-rendszerképek frissítései
Következő lépések
A mintaalkalmazást tartalmazó Git-adattár dokumentációt is tartalmaz. Az adattárban elérhető erőforrások áttekintéséhez lásd a README fájlt . Megtudhatja, hogyan implementálhatja a HTTPS-t:
ASP.NET Core Docker-rendszerképek
Ebben az oktatóanyagban letölt egy ASP.NET Core-mintaalkalmazást, és docker-tárolókban futtatja. A minta Linux- és Windows-tárolókkal is működik.
A minta Dockerfile a Docker többfázisú buildelési funkcióját használja a különböző tárolókban való buildeléshez és futtatáshoz. A build- és futtatási tárolók a Microsoft Által a Docker Hubban biztosított képekből jönnek létre:
dotnet/sdkA minta ezt a képet használja az alkalmazás létrehozásához. A rendszerkép tartalmazza a .NET SDK-t, amely tartalmazza a parancssori eszközöket (CLI). A rendszerkép helyi fejlesztésre, hibakeresésre és egységtesztelésre van optimalizálva. A fejlesztéshez és fordításhoz telepített eszközök viszonylag nagy méretűvé teszik a képet.
dotnet/core/sdkA minta ezt a képet használja az alkalmazás létrehozásához. A rendszerkép tartalmazza a .NET Core SDK-t, amely tartalmazza a parancssori eszközöket (CLI). A rendszerkép helyi fejlesztésre, hibakeresésre és egységtesztelésre van optimalizálva. A fejlesztéshez és fordításhoz telepített eszközök viszonylag nagy méretűvé teszik a képet.
dotnet/aspnetA minta ezt a képet használja az alkalmazás futtatásához. A rendszerkép tartalmazza a ASP.NET Core-futtatókörnyezetet és a kódtárakat, és az éles környezetben futó alkalmazások futtatására van optimalizálva. Az üzembe helyezés és az alkalmazásindítás sebességére tervezett kép viszonylag kicsi, így a hálózati teljesítmény a Docker Registry-től a Docker-gazdagépig optimalizálva van. Csak az alkalmazás futtatásához szükséges bináris fájlok és tartalmak lesznek átmásolva a tárolóba. Az alkalmazás indításáig a lehető leggyorsabban készen áll a tartalom a futtatásra. A Docker-modellben nincs szükség dinamikus kódfordításra.
dotnet/core/aspnetA minta ezt a képet használja az alkalmazás futtatásához. A rendszerkép tartalmazza a ASP.NET Core-futtatókörnyezetet és a kódtárakat, és az éles környezetben futó alkalmazások futtatására van optimalizálva. Az üzembe helyezés és az alkalmazásindítás sebességére tervezett kép viszonylag kicsi, így a hálózati teljesítmény a Docker Registry-től a Docker-gazdagépig optimalizálva van. Csak az alkalmazás futtatásához szükséges bináris fájlok és tartalmak lesznek átmásolva a tárolóba. Az alkalmazás indításáig a lehető leggyorsabban készen áll a tartalom a futtatásra. A Docker-modellben nincs szükség dinamikus kódfordításra.
Előfeltételek
Docker-ügyfél 18.03-s vagy újabb verziója
A mintaalkalmazás letöltése
Töltse le a mintát a .NET Docker-adattár klónozásával:
git clone https://github.com/dotnet/dotnet-docker
Az alkalmazás helyi futtatása
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a következő parancsot az alkalmazás helyi létrehozásához és futtatásához:
dotnet runNyissa meg a böngészőben a
http://localhost:5000-t az alkalmazás teszteléséhez.Az alkalmazás leállításához nyomja le a Ctrl+C billentyűkombinációt a parancssorban.
Futtatás Linux-tárolóban vagy Windows-tárolóban
Linux-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Linux-tárolókra való váltást.
Windows-tárolóban való futtatáshoz kattintson a jobb gombbal a Rendszertálca Docker-ügyfél ikonjára, és válassza a Váltás Windows-tárolókra lehetőséget.
Lépjen a Dockerfile mappába a dotnet-docker/samples/aspnetapp címen.
Futtassa a következő parancsokat a minta létrehozásához és futtatásához a Dockerben:
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetappA
buildparancsargumentumok:- Nevezze el a képfájlt aspnetapp-nak.
- Keresse meg a Dockerfile-t az aktuális mappában (az időszak végén).
A futtatási parancs argumentumai:
- Állítson be egy pszeudo-TTY-t, és tartsa nyitva akkor is, ha nincs csatlakoztatva. (Ugyanaz a hatás, mint
--interactive --tty.) - Automatikusan távolítsa el a tárolót kilépéskor.
- Térképezze fel a helyi gépen az 5000-es portot a tárolóban lévő 80-as portra.
- Nevezze el a tárolót aspnetcore_sample.
- Adja meg az aspnetapp képet.
Nyissa meg a böngészőben a
http://localhost:5000-t az alkalmazás teszteléséhez.
Manuális létrehozás és üzembe helyezés
Bizonyos esetekben érdemes lehet egy alkalmazást üzembe helyezni egy tárolóban a futtatáskor szükséges eszközök másolásával. Ez a szakasz bemutatja, hogyan lehet manuálisan üzembe helyezni.
Lépjen a projektmappára a dotnet-docker/samples/aspnetapp/aspnetapp címen.
Futtassa a dotnet publish parancsot:
dotnet publish -c Release -o publishedA parancs argumentumai:
- Hozza létre az alkalmazást kiadási módban (az alapértelmezett hibakeresési mód).
- Hozza létre az objektumokat a közzétett mappában.
Nyisd meg az alkalmazást.
Windows:
dotnet published\aspnetapp.dllLinux:
dotnet published/aspnetapp.dll
Böngésszen el a
http://localhost:5000-ra a kezdőlap megtekintéséhez.
Ha a manuálisan közzétett alkalmazást egy Docker-tárolóban szeretné használni, hozzon létre egy új Docker-fájlt , és a docker build . paranccsal hozzon létre egy lemezképet.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az új kép megtekintéséhez használja a docker images parancsot.
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az új kép megtekintéséhez használja a docker images parancsot.
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak az docker build parancs legutóbbi futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /app/aspnetapp
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/aspnetapp/out ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban leírtak szerint a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak az docker build parancs legutóbbi futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
A Dockerfile
Íme a korábban futtatott parancs által használt docker build. A dotnet publish-t ugyanúgy használod ebben a szakaszban a készítéshez és üzembe helyezéshez, ahogyan te csináltad.
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /app/aspnetapp
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY --from=build /app/aspnetapp/out ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Az előző Dockerfile-ban a *.csproj fájlok másolása és visszaállítása különálló rétegekként történik. Amikor a docker build parancs létrehoz egy rendszerképet, egy beépített gyorsítótárat használ. Ha a *.csproj fájlok nem változtak az docker build parancs legutóbbi futtatása óta, a dotnet restore parancsnak nem kell újra futnia. Ehelyett a megfelelő dotnet restore réteg beépített gyorsítótárát használják. További információ: Ajánlott eljárások Docker-fájlok írásához.
További erőforrások
- .NET-alkalmazás tárolóba helyezése dotnet-közzététellel
- Docker buildelési parancs
- Docker-futtatási parancs
- ASP.NET Core Docker-minta (Az oktatóanyagban használt).)
- A ASP.NET Core konfigurálása proxykiszolgálókkal és terheléselosztókkal való együttműködésre
- Visual Studio Docker Tools használata
- Hibakeresés a Visual Studio Code-tal
- GC a Docker és a kis tárolók használatával
- System.IO.IOException: Elérte a konfigurált felhasználói korlátot (128) az inotify példányok számára vonatkozóan
Következő lépések
A mintaalkalmazást tartalmazó Git-adattár dokumentációt is tartalmaz. Az adattárban elérhető erőforrások áttekintéséhez lásd a README fájlt . Megtudhatja, hogyan implementálhatja a HTTPS-t: