Der Einstieg in .NET Core und/oder ASP.NET Core mit Docker ist ganz einfach. Wenn Sie Docker installiert haben, müssen Sie natürlich nichts installieren, um .NET Core auszuprobieren.
So führen Sie eine kleine .NET Core-Konsolenanwendung aus:
docker run --rm mcr.microsoft.com/dotnet/core/samples:dotnetapp
Und das Ergebnis:
latest: Pulling from dotnet/core/samples
Hello from .NET Core!
...SNIP...
**Environment**
Platform: .NET Core
OS: Linux 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018
So führen Sie einfach eine schnelle kleine ASP.NET Core-Website aus:
docker run -it --rm -p 8000:80 --name aspnetcore_sample mcr.microsoft.com/dotnet/core/samples:aspnetapp
Und hier läuft es auf localhost:8000
Sie können mit diesem Image auch ASP.NET Core-Images mit Docker über HTTPS hosten oder ASP.NET Core-Apps in Windows-Containern ausführen.
Beachten Sie, dass Microsoft-Teams jetzt Container-Images in der MCR (Microsoft Container Registry) veröffentlichen, damit sie das Azure CDN verwenden und schneller ziehen können, wenn sie global näher bei Ihnen sind. Die Images beginnen bei MCR und können dann an andere Containerregistrierungen syndiziert werden.
Die neuen Repos folgen:
- .NET Core Runtime-Abhängigkeiten (nur das, was .NET Core benötigt, aber nicht .NET Core selbst – nützlich, wenn Sie Ihre eigene Kopie verteilen und dennoch eine kleine Container-Image-Größe wünschen)
- .NET Core Runtime (Nur das, was zum Ausführen einer .NET Core-App benötigt wird)
- .NET Core SDK (enthält die Compiler, alles)
- ASP.NET Core-Laufzeit (alles, was Sie zum Ausführen Ihrer ASP.NET Core-Webanwendung benötigen)
Beim „Docker-Pull“ können Sie Tag-Strings für .NET Core verwenden und es funktioniert in allen unterstützten .NET Core-Versionen
- SDK:
docker pull mcr.microsoft.com/dotnet/core/sdk:2.1
- ASP.NET Core-Laufzeit:
docker pull mcr.microsoft.com/dotnet/core/aspnet:2.1
- .NET Core-Laufzeit:
docker pull mcr.microsoft.com/dotnet/core/runtime:2.1
- .NET Core-Laufzeitabhängigkeiten:
docker pull mcr.microsoft.com/dotnet/core/runtime-deps:2.1
Beispielsweise kann ich das .NET Core 3.0 SDK ausführen und wie folgt damit herumspielen:
docker run -it mcr.microsoft.com/dotnet/core/sdk:3.0
Ich habe Docker verwendet, um meine Komponententests auf meiner Podcast-Site in einem Container lokal auszuführen. Dann lade ich die Testergebnisse auf ein Volume, speichere sie in einem lokalen Ordner und prüfe sie mit Visual Studio
docker build --pull --target testrunner -t podcast:test .
docker run --rm -v c:\github\hanselminutes-core\TestResults:/app/hanselminutes.core.tests/TestResults podcast:test
Ich kann den Docker-Container dann entweder in Azure App Service for Containers hosten oder als kleine einmalige pro Sekunde abgerechnete Instanzen mit Azure Container Instances (ACI).
Haben Sie .NET Core in Docker verwendet? Wie ist es für dich gelaufen?
Sponsor: Verwalten Sie GitHub-Pull-Requests direkt in der IDE mit dem neuesten JetBrains Rider. Ein integrierter Performance-Profiler unter Windows kommt ebenfalls zu Hilfe.