Megosztás a következőn keresztül:


ASP.NET Core-alkalmazás futtatása Docker-tárolókban

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/sdk

    A 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/aspnet

    A 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

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 run
    
  • Nyissa 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 aspnetapp
    

    A build parancsargumentumok:

    • 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 published
    

    A 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.dll
      
    • Linux:

      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

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/sdk

    A 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/aspnet

    A 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

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 run
    
  • Nyissa 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 aspnetapp
    

    A build parancsargumentumok:

    • 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 published
    

    A 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.dll
      
    • Linux:

      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

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/sdk

    A 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/aspnet

    A 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

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 run
    
  • Nyissa 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 aspnetapp
    

    A build parancsargumentumok:

    • 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 published
    

    A 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.dll
      
    • Linux:

      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

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/sdk

    A 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/aspnet

    A 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

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 run
    
  • Nyissa 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 aspnetapp
    

    A build parancsargumentumok:

    • 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 published
    

    A 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.dll
      
    • Linux:

      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

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/sdk

    A 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/sdk

    A 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/aspnet

    A 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/aspnet

    A 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

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 run
    
  • Nyissa 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 aspnetapp
    

    A build parancsargumentumok:

    • 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 published
    

    A 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.dll
      
    • Linux:

      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

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: