Olvasás angol nyelven

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


A .NET és a Docker bemutatása

A tárolók a felhőalkalmazások üzembe helyezésének és üzemeltetésének egyik legnépszerűbb módja, olyan eszközökkel, mint Docker, Kubernetesés Podman. Sok fejlesztő azért választ tárolókat, mert egyszerűen csomagolhatja be az alkalmazást a függőségeivel, és azt megbízhatóan futtathatja bármely tárológazdán. A .NET tárolókkalszéles körű támogatással rendelkezik.

A Docker nagyszerű áttekintést ad a konténerekről. Docker Desktop: Community Edition egy jó eszköz a tárolók fejlesztői asztali gépeken való használatához.

.NET-rendszerképek

A hivatalos .NET-konténerképek közzé vannak téve a Microsoft Artifact Registry -ben, és a Docker Hub-on elérhetők. A futtatási környezeti képek a gyártáshoz, és SDK képek a kód fejlesztésére, Linux (Alpine, Debian, Ubuntu, Mariner) és Windows rendszerekhez. További információ: .NET-tárolórendszerképek.

A .NET-rendszerképek rendszeresen frissülnek az új .NET-javítások közzétételekor vagy az operációs rendszer alaprendszerképének frissítésekor.

Letisztult tárolóképek Ubuntu konténerképek, amelyek a .NET futtatókörnyezet minimális összetevőit tartalmazzák. Ezek a képek ~100 MB-al kisebbek, mint a normál Ubuntu-képek, és kevesebb CVE-jük van, mivel kevesebb összetevőjük van. Különösen nem tartalmaznak rendszerhéjat vagy csomagkezelőt, ami jelentősen javítja a biztonsági profiljukat. Emellett egy nem gyökérfelhasználó is szerepel, és úgy van konfigurálva, hogy ez a felhasználó engedélyezve legyen.

Konténer képfájlok létrehozása

Létrehozhat egy tárolólemezképet egy Dockerfile-, vagy támaszkodhat a .NET SDK-ra a rendszerképlétrehozásához. Képek készítésére vonatkozó mintákért lásd dotnet/dotnet-docker és dotnet/sdk-container-builds.

Az alábbi példa néhány gyors lépésben szemlélteti a tárolórendszerképek készítését és futtatását (a .NET 8 és a .NET 7.0.300 támogatott).

Bash
$ dotnet new webapp -o webapp
$ cd webapp/
$ dotnet publish -t:PublishContainer
MSBuild version 17.8.3+195e7f5a3 for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
  webapp -> /home/rich/webapp/bin/Release/net8.0/webapp.dll
  webapp -> /home/rich/webapp/bin/Release/net8.0/publish/
  Building image 'webapp' with tags 'latest' on top of base image 'mcr.microsoft.com/dotnet/aspnet:8.0'.
  Pushed image 'webapp:latest' to local registry via 'docker'.
$ docker run --rm -d -p 8000:8080 webapp
7c7ad33409e52ddd3a9d330902acdd49845ca4575e39a6494952b642e584016e
$ curl -s http://localhost:8000 | grep ASP.NET
    <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
$ docker ps
CONTAINER ID   IMAGE     COMMAND               CREATED              STATUS              PORTS                                       NAMES
7c7ad33409e5   webapp    "dotnet webapp.dll"   About a minute ago   Up About a minute   0.0.0.0:8000->8080/tcp, :::8000->8080/tcp   jovial_shtern
$ docker kill 7c7ad33409e5

docker init egy új lehetőség a Docker-fájlokat használni kívánó fejlesztők számára.

Portok

A portleképezés a tárolók használatának kulcsfontosságú része. A portokat a tárolón kívül kell közzétenni a külső webes kérelmek megválaszolásához. ASP.NET alapvető tárolórendszerképek alapértelmezés szerint a .NET 8 módosultak a port figyeléséhez. .NET 6 és 7 figyeli a port 80.

A korábbi példában a docker run, a gazdagépport 8000 a tárolóport 8080-re van leképezve. A Kubernetes hasonló módon működik.

A ASPNETCORE_HTTP_PORTS, ASPNETCORE_HTTPS_PORTSés ASPNETCORE_URLS környezeti változókkal konfigurálhatja ezt a viselkedést.

Felhasználók

A .NET 8-tól kezdve minden rendszerkép tartalmaz egy nem gyökérfelhasználót app. Alapértelmezés szerint a vésett képek konfigurálva vannak ezzel a felhasználóval. A közzétételi alkalmazás .NET-tárolóként funkció (amelyet az Tárolólemezképek létrehozása szakaszban mutatunk be) alapértelmezés szerint ezzel a felhasználóval is konfigurálja a lemezképeket. Minden más esetben a app felhasználó manuálisan is beállítható, például a USERDockerfile utasítással. Ha egy rendszerkép app lett konfigurálva, és a parancsokat root-ként kell futtatni, akkor a USER utasítással beállíthatja a felhasználót root-ra.

Tájékozottság

Tárolóval kapcsolatos híreket teszünk közzé a dotnet/dotnet-docker vita témában és a .NET Blog „containers” kategóriájában.

Azure-szolgáltatások

A különböző Azure-szolgáltatások támogatják a tárolókat. Hozzon létre egy Docker-lemezképet az alkalmazáshoz, és helyezze üzembe az alábbi szolgáltatások egyikén:

  • Azure Kubernetes Service (AKS)
    Windows & Linux-tárolók méretezése és vezénylése a Kubernetes használatával.

  • Azure App Service
    Webalkalmazások vagy API-k üzembe helyezése tárolók használatával PaaS-környezetben.

  • Azure Conténer Alkalmazások
    A tároló számítási feladatait kiszolgálók, vezénylés vagy infrastruktúra kezelése nélkül futtathatja, és natív támogatást használhat Dapr és KEDA a megfigyelhetőség és a nullára való skálázás érdekében.

  • Azure Tároló Példányok
    Hozzon létre egyéni tárolókat a felhőben magasabb szintű felügyeleti szolgáltatások nélkül.

  • Azure Batch
    Ismétlődő számítási feladatok futtatása tárolókkal.

  • Azure Service Fabric
    A .NET-alkalmazások emelése, áthelyezése és modernizálása mikroszolgáltatásokba Windows & Linux-tárolók használatával.

  • Azure Container Registry-
    Konténerképek tárolása és kezelése bármely Azure-telepítésnél.

Következő lépések