Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Visual Studióval egyszerűen hozhat létre, hibakeresést és futtathat tárolóalapú .NET-, ASP.NET- és ASP.NET Core-alkalmazásokat, és közzéteheti őket az Azure Container Registryben, a Docker Hubban, az Azure App Service-ben vagy a saját tárolóregisztrációs adatbázisában. Ebben a cikkben egy ASP.NET Core-alkalmazást tesz közzé az Azure Container Registryben.
Előfeltételek
- Docker Desktop vagy Podman Desktop.
- A Visual Studio, vagy a Visual Studio 2026 a Podman támogatásához, az ASP.NET és webfejlesztés feladattal, az Azure fejlesztés feladattal, és/vagy a .NET asztali fejlesztési feladattal telepítve.
- Azure-előfizetés az Azure Container Registryben való közzétételhez. Regisztráljon ingyenes próbaverzióra.
Előfeltételek
- Docker Desktop.
- A Visual Studio telepítve van a ASP.NET és webfejlesztéssel, az Azure fejlesztési számítási feladatával és/vagy a .NET asztali fejlesztési számítási feladatával.
- Azure-előfizetés az Azure Container Registryben való közzétételhez. Regisztráljon ingyenes próbaverzióra.
Telepítés és beállítás
A Docker telepítésével kapcsolatban először tekintse át a windowsos Docker Desktop : Tudnivalók atelepítése előtt. Ezután telepítse Docker Desktop.
Telepítés és beállítás
A Docker telepítésével kapcsolatban először tekintse át a windowsos Docker Desktop : Tudnivalók atelepítése előtt. Ezután telepítse Docker Desktop.
A Podman tárolóplatformként való használatához töltse le a Podman Desktop for Windowst, majd kövesse a Podman for Windows oktatóanyagát egy Podman-gép inicializálásához és elindításához.
Projekt hozzáadása konténerhez
A Visual Studio-projekt létrehozása előtt győződjön meg arról, hogy a Docker Desktop a Visual Studio-projektben használni kívánt tárolókat (Windows vagy Linux) futtatja.
A Docker Desktop által használt tárolótípus módosításához kattintson a jobb gombbal a Docker ikonra (bálna) a tálcán, és válassza a Váltás Linux-tárolókra vagy Váltás Windows-tárolókra.
Figyelmeztetés
Ha a Visual Studio-projekt létrehozása után vált a tárolótípusra, előfordulhat, hogy a Docker-rendszerképfájlok betöltése sikertelen lesz.
Hozzon létre egy új projektet a ASP.NET Core Web App sablonnal.
Az Új webalkalmazás létrehozása képernyőn jelölje be a Tárolótámogatás engedélyezése jelölőnégyzetet.
A képernyőképen a .NET 8.0 legújabb kiadása látható.
Válassza ki a kívánt tárolótípust (Windows vagy Linux), majd válassza a létrehozása lehetőséget.
A Dockerfile áttekintése
A Visual Studio létrehoz egy Dockerfile a projektben, amely a végső Docker-rendszerkép létrehozásának receptjét kínálja. További információkért lásd a Dockerfile referencia - amely részletezi a Dockerfile-ban használt parancsokat.
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyWepApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "./MyWebApp/./MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Az előző Dockerfile a Microsoft syndicates tárolókatalógus .NET 8 rendszerképén alapul, és útmutatást tartalmaz az alaprendszerkép módosításához az elnevezett MyWebApp projekt létrehozásával és a tárolóhoz való hozzáadásával. Ha a .NET-keretrendszert használja, az alaprendszerkép eltérő.
Ha az új projekt párbeszédpanel HTTPS- konfigurálása jelölőnégyzet be van jelölve, a Dockerfile két portot tesz elérhetővé. A HTTP-forgalomhoz egy portot használnak; a másik portot a HTTPS-hez használja. Ha nincs bejelölve a négyzet, egyetlen port (80 vagy 8080) van kitéve a HTTP-forgalom számára.
A .NET 8-as és újabb verzióinak megcélzásakor azzal az előnnyel jár, hogy az alkalmazás normál felhasználóként biztonságosabban futtatható, nem pedig emelt szintű engedélyekkel. A Visual Studio által a .NET 8-projektekhez létrehozott alapértelmezett Dockerfile normál felhasználóként van konfigurálva. Ha engedélyezni szeretné ezt a viselkedést egy meglévő projekten, adja hozzá a USER app sort a Dockerfile-hoz a bázisképfájlban. Mivel a 80-s port a normál felhasználók számára korlátozott, a 80 és 443 helyett tegye elérhetővé a 8080-at és a 8081-et. A HTTP-forgalomhoz a 8080-at, a HTTPS-hez pedig a 8081-s portot használja a rendszer. Normál felhasználóként való futtatáshoz a tárolónak .NET 8 alaprendszerképet kell használnia, az alkalmazásnak pedig .NET 8-alkalmazásként kell futnia. Ha megfelelően van konfigurálva, a Dockerfile-nak a következő példához hasonlóan tartalmaznia kell a kódot:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
A .NET 8 és újabb verziók alapértelmezett sablonjai a környezeti változót APP_UID használják a normál felhasználó identitásához.
Hibakeresés
Válassza Docker- az eszköztár hibakeresési legördülő listájából, és kezdje el a hibakeresést. Előfordulhat, hogy megjelenik egy üzenet, amely a tanúsítvány megbízhatóságáról szól; válassza ki, hogy megbízik-e a tanúsítványban a folytatáshoz.
A Konténer Eszközök opció a Kimeneti ablakban mutatja, milyen műveletek zajlanak. Az első alkalommal eltarthat egy ideig az alaprendszerkép letöltése, de a későbbi futtatások gyorsabbak lesznek.
A build befejezése után megnyílik a böngésző, és megjelenik az alkalmazás kezdőlapja. A böngésző címsorában láthatja a hibakereséshez használt localhost URL-címet és portszámot.
Jegyzet
Ha módosítania kell a portokat a hibakereséshez, ezt a launchSettings.json fájlban teheti meg. Lásd a konténerindítási beállításokat.
Tárolók ablak
A Tárolók ablakban megtekintheti a számítógépen futó tárolókat és az egyéb elérhető rendszerképeket.
Nyissa meg a Tárolók ablakot az IDE keresőmezőjének használatával (a használatához nyomja le a Ctrl+Q billentyűkombinációt), írja be a container, és válassza ki a Tárolók ablakot a listából.
A Tárolók ablakot kényelmes helyre, például a szerkesztő alá csatlakoztathatja úgy, hogy áthelyezi és követi az ablak elhelyezési útmutatóját.
Az ablakban keresse meg a tárolót, és lépkedjen végig az egyes lapokon a környezeti változók, a portleképezések, a naplók és a fájlrendszer megtekintéséhez.
További információ: Tárolók ablak használata.
Docker-rendszerképek közzététele
Az alkalmazás fejlesztési és hibakeresési ciklusának befejezése után létrehozhat egy éles rendszerképet az alkalmazásról.
Módosítsa a konfigurációs legördülő listát a kiadás-re, és építse fel az alkalmazást.
Kattintson a jobb gombbal a projektre Megoldáskezelő, és válassza a Közzététellehetőséget.
A Közzététel párbeszédpanelen válassza a Docker Container Registry lapot.
Válassza Új Azure Container Registry-létrehozása lehetőséget.
Adja meg a kívánt értékeket az Hozzon létre egy új Azure Container Registry-.
Beállítás Javasolt érték Leírás DNS-előtag Globálisan egyedi név A tárolóregisztrációs adatbázist egyedileg azonosító név. Előfizetés Az előfizetés kiválasztása A használni kívánt Azure-előfizetés. erőforráscsoport myResourceGroup (Erőforrás Csoport) Annak az erőforráscsoportnak a neve, amelyben létre kívánja hozni a tárolóregisztrációs adatbázist. Új erőforráscsoport létrehozásához válassza az Új lehetőséget. termékváltozat Standard A tárolóregisztrációs adatbázis szolgáltatási szintje Beállításjegyzék helye Az Önhöz közeli hely Válasszon egy helyet egy régióban, ön közelében vagy a tárolóregisztrációs adatbázist használó egyéb szolgáltatások közelében.
Válassza a és alétrehozása lehetőséget. A Közzététel párbeszédpanelen most megjelenik a létrehozott regiszter.
A konténerkép Azure-ban történő közzétételének befejezéséhez az újonnan létrehozott regisztrációs adatbázisban válassza a Befejezés lehetőséget.
Következő lépések
Most már lekérheti a tárolót a regisztrárból bármely olyan gazdagépre, amely képes Docker-képek futtatására, például Azure Container Instances.
Projekt hozzáadása konténerhez
A Visual Studio-projekt létrehozása előtt győződjön meg arról, hogy a Docker Desktop a Visual Studio-projektben használni kívánt tárolókat (Windows vagy Linux) futtatja.
A Docker Desktop által használt tárolótípus módosításához kattintson a jobb gombbal a Docker ikonra (bálna) a tálcán, és válassza a Váltás Linux-tárolókra vagy Váltás Windows-tárolókra.
Figyelmeztetés
Ha a Visual Studio-projekt létrehozása után vált a tárolótípusra, előfordulhat, hogy a Docker-rendszerképfájlok betöltése sikertelen lesz.
Hozzon létre egy új projektet a ASP.NET Core Web App sablonnal.
Az Új webalkalmazás létrehozása képernyőn jelölje be a Tárolótámogatás engedélyezése jelölőnégyzetet.
A képernyőképen a .NET 8.0 legújabb kiadása látható.
Válassza ki a kívánt tárolótípust (Windows vagy Linux), majd válassza a létrehozása lehetőséget.
A Dockerfile áttekintése
A Visual Studio létrehoz egy Dockerfile a projektben, amely a végső Docker-rendszerkép létrehozásának receptjét kínálja. További információkért lásd a Dockerfile referencia - amely részletezi a Dockerfile-ban használt parancsokat.
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["MyWepApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "./MyWebApp/./MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./MyWebApp.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]
Az előző Dockerfile a Microsoft syndicates tárolókatalógus .NET 8 rendszerképén alapul, és útmutatást tartalmaz az alaprendszerkép módosításához az elnevezett MyWebApp projekt létrehozásával és a tárolóhoz való hozzáadásával.
Ha az új projekt párbeszédpanel HTTPS- konfigurálása jelölőnégyzet be van jelölve, a Dockerfile két portot tesz elérhetővé. A HTTP-forgalomhoz egy portot használnak; a másik portot a HTTPS-hez használja. Ha nincs bejelölve a négyzet, egyetlen port (80 vagy 8080) van kitéve a HTTP-forgalom számára.
A .NET 8-as és újabb verzióinak megcélzásakor azzal az előnnyel jár, hogy az alkalmazás normál felhasználóként biztonságosabban futtatható, nem pedig emelt szintű engedélyekkel. A Visual Studio által a .NET 8-projektekhez létrehozott alapértelmezett Dockerfile normál felhasználóként van konfigurálva. Ha engedélyezni szeretné ezt a viselkedést egy meglévő projekten, adja hozzá a USER app sort a Dockerfile-hoz a bázisképfájlban. Mivel a 80-s port a normál felhasználók számára korlátozott, a 80 és 443 helyett tegye elérhetővé a 8080-at és a 8081-et. A HTTP-forgalomhoz a 8080-at, a HTTPS-hez pedig a 8081-s portot használja a rendszer. Normál felhasználóként való futtatáshoz a tárolónak .NET 8 alaprendszerképet kell használnia, az alkalmazásnak pedig .NET 8-alkalmazásként kell futnia. Ha megfelelően van konfigurálva, a Dockerfile-nak a következő példához hasonlóan tartalmaznia kell a kódot:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
Az alapértelmezett sablonok a környezeti változót APP_UID használják a normál felhasználó identitásához.
Hibakeresés
Válassza Docker- az eszköztár hibakeresési legördülő listájából, és kezdje el a hibakeresést. Előfordulhat, hogy megjelenik egy üzenet, amely a tanúsítvány megbízhatóságáról szól; válassza ki, hogy megbízik-e a tanúsítványban a folytatáshoz.
A Konténer Eszközök opció a Kimeneti ablakban mutatja, milyen műveletek zajlanak. Az első alkalommal eltarthat egy ideig az alaprendszerkép letöltése, de a későbbi futtatások gyorsabbak lesznek.
A build befejezése után megnyílik a böngésző, és megjelenik az alkalmazás kezdőlapja. A böngésző címsorában láthatja a hibakereséshez használt localhost URL-címet és portszámot.
Jegyzet
Ha módosítania kell a portokat a hibakereséshez, ezt a launchSettings.json fájlban teheti meg. Lásd a konténerindítási beállításokat.
Tárolók ablak
A Tárolók ablakban megtekintheti a számítógépen futó tárolókat és az egyéb elérhető rendszerképeket.
Nyissa meg a Tárolók ablakot az IDE keresőmezőjének használatával (a használatához nyomja le a Ctrl+Q billentyűkombinációt), írja be a container, és válassza ki a Tárolók ablakot a listából.
A Tárolók ablakot kényelmes helyre, például a szerkesztő alá csatlakoztathatja úgy, hogy áthelyezi és követi az ablak elhelyezési útmutatóját.
Az ablakban keresse meg a tárolót, és lépkedjen végig az egyes lapokon a környezeti változók, a portleképezések, a naplók és a fájlrendszer megtekintéséhez.
További információ: Tárolók ablak használata.
Docker-rendszerképek közzététele
Az alkalmazás fejlesztési és hibakeresési ciklusának befejezése után létrehozhat egy éles rendszerképet az alkalmazásról.
Módosítsa a konfigurációs legördülő listát a kiadás-re, és építse fel az alkalmazást.
Kattintson a jobb gombbal a projektre Megoldáskezelő, és válassza a Közzététellehetőséget.
A Közzététel párbeszédpanelen válassza a Docker Container Registry lapot.
Válassza Új Azure Container Registry-létrehozása lehetőséget.
Adja meg a kívánt értékeket az Hozzon létre egy új Azure Container Registry-.
Beállítás Javasolt érték Leírás DNS-előtag Globálisan egyedi név A tárolóregisztrációs adatbázist egyedileg azonosító név. Előfizetés Az előfizetés kiválasztása A használni kívánt Azure-előfizetés. erőforráscsoport myResourceGroup (Erőforrás Csoport) Annak az erőforráscsoportnak a neve, amelyben létre kívánja hozni a tárolóregisztrációs adatbázist. Új erőforráscsoport létrehozásához válassza az Új lehetőséget. termékváltozat Standard A tárolóregisztrációs adatbázis szolgáltatási szintje Beállításjegyzék helye Az Önhöz közeli hely Válasszon egy helyet egy régióban, ön közelében vagy a tárolóregisztrációs adatbázist használó egyéb szolgáltatások közelében.
Válassza a és alétrehozása lehetőséget. A Közzététel párbeszédpanelen most megjelenik a létrehozott regiszter.
A konténerkép Azure-ban történő közzétételének befejezéséhez az újonnan létrehozott regisztrációs adatbázisban válassza a Befejezés lehetőséget.
Következő lépések
Most már lekérheti a tárolót a regisztrárból bármely olyan gazdagépre, amely képes Docker-képek futtatására, például Azure Container Instances.