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

.NET und Docker

.NET und .NET Core (und Windows!) wurden mit Docker immer besser. Ich verwende Docker für Windows, da es sowohl Linux-Container als auch Windows-Container unterstützt. Sie haben sowohl einen stabilen als auch einen Edge-Kanal. Der Edge (Beta)-Kanal wird regelmäßig aktualisiert und wird in der Regel in dem Jahr, in dem ich ihn betreibe, immer besser.

Als etwas unabhängige Randnotiz führe ich auf meinem Synology NAS auch Docker mit einer Reihe von Containern sowie .NET Core (mein Nas ist ein Intel-Chip), Minecraft Server, Plex Server und CrashPlan aus.

HINWEIS: Docker für Windows erfordert 64-Bit-Windows 10 Pro und Microsoft Hyper-V. Eine vollständige Liste der Voraussetzungen finden Sie unter Was Sie vor der Installation wissen sollten.

Das .NET-Team von Microsoft hat seine Dockerfiles in Ordnung gebracht und organisiert. Es kann scheinen Anfangs das Gegenteil, mit vielen kryptischen Tags und Namen, aber es gibt eine klare Methode, die Sie hier nachlesen können.

Sie veröffentlichen ihre Docker-Images in einigen verschiedenen Repositories auf Docker Hub. Es ist wichtig, Bilder zu segmentieren, damit sie leichter zu finden sind, sowohl auf der Docker-Hub-Website als auch mit dem docker search Befehl.

  • microsoft/dotnet – .NET Core Runtime und SDK-Images für Linux und Nano Server.
  • microsoft/aspnetcore – ASP.NET Core-Images für Linux und Nano Server.
  • microsoft/aspnetcore-build – ASP.NET Core-Images für Linux und Nano Server zum Erstellen von Apps.
  • microsoft/dotnet-framework – .NET Framework 3.5- und 4.6.2-Images für Windows Server Core.
  • microsoft/aspnet – .NET Framework 3.5 und 4.6.2 ASP.NET-Images für Windows Server Core.

Es gibt auch einige Beispiele unter:

  • microsoft/dotnet-samples – .NET Core-Beispiele.
  • microsoft/dotnet-framework-samples – .NET Framework-Beispiele.

Die Beispiele sind super einfach auszuprobieren - HÖREN SIE AUF ZU LESEN UND PROBIEREN SIE ES JETZT AUS.;)

Ich bin immer beeindruckt von einem schönen asynchronen ASCII-Fortschrittsbalken. Ich bin leicht zu beeindrucken. Dies ist ein "Hallo Welt"-Beispiel mit einer überraschenden ASCII-Grafik. Ich werde nicht für dich verderben.

C:\Users\scott\Desktop> docker run microsoft/dotnet-samples
Unable to find image 'microsoft/dotnet-samples:latest' locally
latest: Pulling from microsoft/dotnet-samples
10a267c67f42: Downloading [========> ] 9.19MB/52.58MB
7e1a7ec87c21: Downloading [======================> ] 10.8MB/18.59MB
923d0cd2ed37: Download complete
7c523004cf83: Downloading [=========> ] 6.144MB/33.07MB
f3582118a43a: Waiting
c27ef6b597a0: Waiting

Alle Bilder werden auf GitHub verwaltet und gepflegt, sodass Sie sich einbringen können, wenn Sie die Bilder oder Dateien nicht ausgraben.

Interessant ist der Unterschied zwischen Dev-Images und Produktions-Images sowie Images, die Sie in CI/CD-Situationen (Build Server) verwenden würden, um andere Images zu erstellen. Hier sind einige Beispiele von GitHub:

Entwicklung

  • dotnetapp-dev – Dieses Beispiel eignet sich gut für die Entwicklung und Erstellung, da es auf dem .NET Core SDK-Image basiert. Es führt dotnet aus Befehle in Ihrem Namen, was die Zeit zum Erstellen von Docker-Images verkürzt (vorausgesetzt, Sie nehmen Änderungen vor und testen sie dann iterativ in einem Container).

Produktion

  • dotnetapp-prod – Dieses Beispiel eignet sich gut für die Produktion, da es auf dem .NET Core Runtime-Image und nicht auf dem größeren .NET Core SDK-Image basiert. Die meisten Apps benötigen nur die Laufzeit, wodurch die Größe Ihres Anwendungsabbilds reduziert wird.
  • dotnetapp-selfcontained – Dieses Beispiel eignet sich auch gut für Produktionsszenarien, da es auf einem Betriebssystem-Image (ohne .NET Core) basiert. Eigenständige .NET Core-Apps enthalten .NET Core als Teil der App und nicht als zentral installierte Komponente in einem Basisimage.
  • dotnetapp-current – ​​Dieses Beispiel zeigt, wie eine Anwendung für die Verwendung des .NET Core 1.1-Image konfiguriert wird. Sowohl die .csproj- als auch die Dockerfile-Datei wurden so aktualisiert, dass sie von .NET Core 1.1 abhängen. Dieses Beispiel ist mit dotnetapp-prod identisch, mit der Ausnahme, dass es sich auf eine neuere .NET Core-Version stützt.
  • aspnetapp – Dieses Beispiel zeigt eine dockerisierte ASP.NET Core-Web-App

Es gibt eine großartige Docker-Unterstützung in VS Code, Visual Studio 2017 und Visual Studio für Mac (der Vorschaukanal). Mit VS und Docker unter Windows können Sie sogar F5 (debuggen) in einen Linux-Container.

Einige von Ihnen haben möglicherweise .NET Framework-Apps, die in virtuellen Maschinen ausgeführt werden, die Sie gerne in eine Containerinfrastruktur verschieben würden. Es gibt ein Tool namens Image2Docker, das von Docker verwaltet wird und das helfen könnte. Es hilft bei der Migration von VMs zu Containern. Sehen Sie sich den Image2Docker DockerCon-Vortrag an oder lesen Sie Dockers Convert ASP.NET Web Servers To Docker with ImageDocker, um mehr zu erfahren.

"Containerschiff" von National Ocean Service der NOAA ist lizenziert unter CC BY 2.0

Sponsor: Probieren Sie Seq aus:einfache zentralisierte Protokollierung in Ihrer Infrastruktur mit hervorragender Unterstützung für ASP.NET Core und Serilog. Version 4.0 herunterladen.


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

  2. Unterschied zwischen Podman und Docker.

  3. Erkennen, dass eine .NET Core-App in einem Docker-Container ausgeführt wird, und SkipableFacts in XUnit

  4. Optimieren der Größen von ASP.NET Core Docker-Images

  5. .NET Core X509Store unter Linux

.NET Core und Docker

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

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