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 a Docker, a Kubernetes és a Podman. Sok fejlesztő azért választ tárolókat, mert egyszerűen csomagolhat be egy alkalmazást a függőségeibe, és megbízhatóan futtathatja az alkalmazást bármely tároló gazdagépen. A .NET tárolókkal való használatához széles körű támogatás áll rendelkezésre.
A Docker nagyszerű áttekintést nyújt a tárolókról. A Docker Desktop: Community Edition egy jó eszköz tárolók fejlesztői asztali gépeken való használatához.
.NET-rendszerképek
A hivatalos .NET-tárolórendszerképek közzé vannak téve a Microsoft Eszközjegyzék, és a Docker Hubon találhatók. Vannak futtatókörnyezeti rendszerképek éles és SDK-lemezképekhez a kód készítéséhez, Linuxhoz (Alpine, Debian, Ubuntu, Mariner) és Windowshoz. 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.
A vésett tárolólemezképek olyan Ubuntu tárolólemezképek, amelyekhez a .NET-futtatókörnyezet minimális összetevőkészlete szükséges. 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ót is tartalmaznak, és úgy vannak konfigurálva, hogy a felhasználó engedélyezve legyen.
Tárolólemezképek létrehozása
Létrehozhat egy tárolórendszerképet Egy Docker-fájllal , vagy a .NET SDK-ra támaszkodva hozhat létre lemezképet. 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).
$ 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
Ez egy új lehetőség a Dockerfile-okat 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 .NET 8-ban a tároló alaprendszerképe alapértelmezés szerint módosult a port 8080
figyeléséhez. .NET 6 és 7 figyel a porton 80
.
Az előző példában docker run
a gazdagépport 8000
a tárolóporthoz 8080
van leképezve. A Kubernetes hasonló módon működik.
Ennek ASPNETCORE_HTTP_PORTS
a viselkedésnek a konfigurálásához a , ASPNETCORE_HTTPS_PORTS
és ASPNETCORE_URLS
a környezeti változók használhatók.
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 a Tárolólemezképek készítése szakaszban mutatunk be) a rendszerképek alapértelmezés szerint engedélyezve van ezzel a felhasználóval. Minden más esetben a app
felhasználó manuálisan is beállítható, például a USER
Dockerfile utasítással. Ha egy rendszerkép konfigurálva app
van, és a parancsokat a következőképpen root
kell futtatni, akkor az USER
utasítással beállíthatja a felhasználót root
.
Tájékoztatás
A tárolóval kapcsolatos hírek a dotnet/dotnet-docker vitafórumokban és a .NET Blog "containers" kategóriájában jelennek meg.
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 Container Apps
Futtassa a tároló számítási feladatait kiszolgálók, vezénylés vagy infrastruktúra kezelése nélkül, és használja ki a Dapr és a KEDA natív támogatását a megfigyelhetőség és a nullára való skálázás érdekében.Azure Container Instances
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
Tárolólemezképek tárolása és felügyelete az Azure-telepítések minden típusában.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: