GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

.NET Core und Docker

Wenn Sie Docker installiert haben, können Sie ein .NET Core-Beispiel schnell so ausführen. Probieren Sie es aus:

docker run --rm microsoft/dotnet-samples

Wenn sich Ihr Docker für Windows im „Windows-Container-Modus“ befindet, können Sie .NET Framework (das 4.x Windows Framework) wie folgt ausprobieren:

docker run --rm microsoft/dotnet-framework-samples

Letzte Woche habe ich ein Video mit einem Artikel erstellt, der zeigt, wie einfach es ist, eine containerisierte Anwendung in Azure AND zu integrieren günstig mit sekundengenauer Abrechnung.

Container-Images lassen sich einfach über Docker Hub, den Docker Store und private Docker-Registrierungen wie die Azure Container Registry freigeben. Sehen Sie sich auch die Visual Studio-Tools für Docker an. Es funktioniert alles sehr gut zusammen.

Ich mag dieses Zitat von Richard Lander:

Stellen Sie sich vor, vor etwa fünf Jahren hätte Ihnen jemand in einem Vorstellungsgespräch gesagt, dass ihm Konsistenz so wichtig ist, dass er das Betriebssystem immer mit seiner App ausliefert. Sie hätten sie wahrscheinlich nicht eingestellt. Doch genau das ist das Modell, das Docker verwendet!

Und es ist ein gutes Modell! Es gibt Ihnen garantierte Konsistenz. „Container umfassen die Anwendung und alle ihre Abhängigkeiten. Die Anwendung führt den gleichen Code aus, unabhängig von Computer, Umgebung oder Cloud.“ Es ist auch eine gute Möglichkeit, um sicherzustellen, dass Ihr zugrunde liegendes .NET mit Sicherheitsfixes auf dem neuesten Stand ist:

Docker ist ein Game Changer für den Erwerb und die Verwendung von .NET-Updates. Denken Sie nur an ein paar Jahre zurück. Sie würden das neueste .NET Framework als MSI-Installationspaket unter Windows herunterladen und müssen es nicht erneut herunterladen, bis wir die nächste Version ausgeliefert haben. Schneller Vorlauf bis heute. Wir übertragen mehrmals im Monat aktualisierte Container-Images an Docker Hub.

Die .NET-Images werden mit den offiziellen Docker-Images erstellt, was nett ist.

.NET-Images werden mit offiziellen Images erstellt. Wir bauen auf den offiziellen Images von Alpine, Debian und Ubuntu für x64 und ARM auf. Durch die Verwendung offizieller Images überlassen wir die Kosten und die Komplexität der regelmäßigen Aktualisierung von Betriebssystem-Basisimages und -Paketen wie OpenSSL beispielsweise den Entwicklern, die diesen Technologien am nächsten stehen. Stattdessen ist unser Build-System so konfiguriert, dass .NET-Images automatisch erstellt, getestet und gepusht werden, wenn die von uns verwendeten offiziellen Images aktualisiert werden. Mit diesem Ansatz können wir .NET Core auf mehreren Linux-Distributionen zu geringen Kosten anbieten und Updates innerhalb weniger Stunden für Sie veröffentlichen.

Hier finden Sie .NET Docker Hub-Repositorys:

.NET Core-Repositorys:

  • microsoft/dotnet – enthält .NET Core-Laufzeit, SDK und ASP.NET Core-Images.
  • microsoft/aspnetcore – enthält ASP.NET Core-Laufzeitimages für .NET Core 2.0 und frühere Versionen. Verwenden Sie microsoft/dotnet für .NET Core 2.1 und höher.
  • microsoft/aspnetcore-build – Enthält ASP.NET Core SDK und node.js für .NET Core 2.0 und frühere Versionen. Verwenden Sie microsoft/dotnet für .NET Core 2.1 und höher. Siehe aspnet/announcements #298.

.NET Framework-Repositorys:

  • microsoft/dotnet-framework – enthält .NET Framework-Laufzeit- und SDK-Images.
  • microsoft/aspnet – enthält ASP.NET-Laufzeitimages für ASP.NET Web Forms und MVC, konfiguriert für IIS.
  • microsoft/wcf – enthält für IIS konfigurierte WCF-Laufzeitimages.
  • microsoft/iis – enthält IIS zusätzlich zum Windows Server Core-Basisimage. Funktioniert für, aber nicht optimiert für .NET Framework-Anwendungen. Stattdessen werden microsoft/aspnet und microsoft/wcfrepos zum Ausführen der jeweiligen Anwendungstypen empfohlen.

Es gibt einige Arten von Bildern im Microsoft/dotnet-Repo:

  • SDK – .NET Core SDK-Images, die die .NET Core-CLI, die .NET Core-Laufzeit und ASP.NET Core enthalten.
  • aspnetcore-runtime – ASP.NET Core-Images, die die .NET Core-Runtime und ASP.NET Core enthalten.
  • Laufzeit – .NET Core-Laufzeitimages, die die .NET Core-Laufzeit enthalten.
  • runtime-deps – .NET Core-Laufzeitabhängigkeitsimages, die nur die Abhängigkeiten von .NET Core und nicht .NET Core selbst enthalten. Dieses Image ist für eigenständige Anwendungen vorgesehen und wird nur für Linux angeboten. Für Windows können Sie das Basis-Image des Betriebssystems direkt für eigenständige Anwendungen verwenden, da alle .NET Core-Abhängigkeiten damit erfüllt werden.

Zum Beispiel verwende ich ein SDK-Image, um meine App zu erstellen, aber ich verwende aspnetcore-runtime, um es zu versenden. Das SDK muss nicht mit einer laufenden App ausgeliefert werden. Ich möchte meine Bildgrößen so klein wie möglich halten!

Für mich habe ich sogar ein kleines PowerShell-Skript erstellt (läuft unter Windows oder Linux), das meine Podcast-Site (das Bild mit dem Tag podcast:test) innerhalb von Docker erstellt und testet . Beachten Sie die Volumenzuordnung? Es speichert die Testergebnisse außerhalb des Containers, sodass ich sie später bei Bedarf einsehen kann.

#!/usr/local/bin/powershell
docker build --pull --target testrunner -t podcast:test .
docker run --rm -v c:\github\hanselminutes-core\TestResults:/app/hanselminutes.core.tests/TestResults podcast:test

Ziemlich glatt.

Results File: /app/hanselminutes.core.tests/TestResults/_898a406a7ad1_2018-06-28_22_05_04.trx

Total tests: 22. Passed: 22. Failed: 0. Skipped: 0.
Test execution time: 8.9496 Seconds

Informieren Sie sich darüber, wie die .NET Core-Images erstellt, verwaltet und gewartet werden. Es hat es mir leicht gemacht, meine Podcast-Site – einmal angedockt – unter .NET Core auf einem Raspberry Pi (ARM32) zum Laufen zu bringen.

Neuer Sponsor! Nie wieder eine Rechnung eingeben! Mit DocSight OCR von ActivePDF extrahieren Sie Daten aus Rechnungen, Rechnungen, Bestellungen und anderen Dokumenten mithilfe der zonalen Datenerfassungstechnologie. Erreichen Sie noch heute die digitale Transformation!


Docker
  1. So installieren Sie .NET Core unter Debian 10

  2. Unterschied zwischen Podman und Docker.

  3. Was ist Docker (und Linux-Container?)

  4. Wann und warum Docker verwendet werden sollte

  5. Installieren Sie Docker und WordPress auf Ubuntu

Erstellen, Ausführen und Testen von .NET Core und ASP.NET Core 2.1 in Docker auf einem Raspberry Pi (ARM32)

Ein serverseitiger Multiplayer-GameBoy-Emulator, geschrieben in .NET Core und Angular

Testen neuer .NET Core Alpine Docker-Images

.NET und Docker

ZEIT jetzt Bereitstellungen von Open-Source-ASP.NET-Core-Web-Apps mit Docker

Erkunden von ASP.NET Core mit Docker in Linux- und Windows-Containern