GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

.NET Core et Docker

Si Docker est installé, vous pouvez exécuter rapidement un exemple .NET Core comme celui-ci. Essayez-le :

docker run --rm microsoft/dotnet-samples

Si votre Docker pour Windows est en "mode conteneur Windows", vous pouvez essayer .NET Framework (le framework Windows 4.x) comme ceci :

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

J'ai fait une vidéo la semaine dernière avec une rédaction montrant à quel point il est facile d'obtenir une application conteneurisée dans Azure ET à moindre coût avec une facturation à la seconde.

Les images de conteneur sont faciles à partager via Docker Hub, le Docker Store et les registres Docker privés, tels que Azure Container Registry. Consultez également Visual Studio Tools pour Docker. Tout fonctionne très bien ensemble.

J'aime cette citation de Richard Lander :

Imaginez qu'il y a environ cinq ans, quelqu'un vous dise lors d'un entretien d'embauche qu'il se soucie tellement de la cohérence qu'il livre toujours le système d'exploitation avec son application. Vous ne les auriez probablement pas embauchés. Pourtant, c'est exactement le modèle qu'utilise Docker !

Et c'est un bon modèle ! Il vous donne une cohérence garantie. "Les conteneurs incluent l'application et toutes ses dépendances. L'application exécute le même code, quel que soit l'ordinateur, l'environnement ou le cloud." C'est également un bon moyen de vous assurer que votre .NET sous-jacent est à jour avec les correctifs de sécurité :

Docker est un changeur de jeu pour l'acquisition et l'utilisation des mises à jour .NET. Repensez à il y a quelques années seulement. Vous téléchargerez le dernier .NET Framework en tant que package d'installation MSI sous Windows et vous n'aurez pas besoin de le télécharger à nouveau jusqu'à ce que nous expédions la prochaine version. Avance rapide jusqu'à aujourd'hui. Nous transférons des images de conteneur mises à jour vers Docker Hub plusieurs fois par mois.

Les images .NET sont construites à l'aide des images Docker officielles, ce qui est bien.

Les images .NET sont construites à partir d'images officielles. Nous nous appuyons sur les images officielles Alpine, Debian et Ubuntu pour x64 et ARM. En utilisant des images officielles, nous laissons le coût et la complexité de la mise à jour régulière des images de base du système d'exploitation et des packages comme OpenSSL, par exemple, aux développeurs les plus proches de ces technologies. Au lieu de cela, notre système de construction est configuré pour construire, tester et envoyer automatiquement des images .NET chaque fois que les images officielles que nous utilisons sont mises à jour. Grâce à cette approche, nous sommes en mesure de proposer .NET Core sur plusieurs distributions Linux à faible coût et de vous proposer des mises à jour en quelques heures.

Voici où vous pouvez trouver les dépôts .NET Docker Hub :

Dépôts .NET Core :

  • microsoft/dotnet :comprend le runtime .NET Core, le SDK et les images ASP.NET Core.
  • microsoft/aspnetcore :comprend des images d'exécution ASP.NET Core pour .NET Core 2.0 et les versions antérieures. Utilisez Microsoft/dotnet pour .NET Core 2.1 et versions ultérieures.
  • microsoft/aspnetcore-build – Inclut le SDK ASP.NET Core et node.js pour .NET Core 2.0 et les versions antérieures. Utilisez Microsoft/dotnet pour .NET Core 2.1 et versions ultérieures. Voir aspnet/announcements #298.

Dépôts .NET Framework :

  • microsoft/dotnet-framework :comprend l'environnement d'exécution .NET Framework et les images SDK.
  • microsoft/aspnet :comprend des images d'exécution ASP.NET, pour les formulaires Web ASP.NET et MVC, configurées pour IIS.
  • microsoft/wcf :inclut les images d'exécution WCF configurées pour IIS.
  • microsoft/iis – inclut IIS en plus de l'image de base de Windows Server Core. Fonctionne mais n'est pas optimisé pour les applications .NET Framework. Microsoft/aspnet et microsoft/wcfrepos sont plutôt recommandés pour exécuter les types d'application respectifs.

Il existe plusieurs types d'images dans le référentiel Microsoft/dotnet :

  • SDK — Images du SDK .NET Core, qui incluent l'interface de ligne de commande .NET Core, le runtime .NET Core et ASP.NET Core.
  • aspnetcore-runtime — Images ASP.NET Core, qui incluent le runtime .NET Core et ASP.NET Core.
  • environnement d'exécution — Images d'exécution .NET Core, qui incluent l'environnement d'exécution .NET Core.
  • dépôts d'exécution — Images de dépendance d'exécution .NET Core, qui incluent uniquement les dépendances de .NET Core et non .NET Core lui-même. Cette image est destinée aux applications autonomes et n'est proposée que pour Linux. Pour Windows, vous pouvez utiliser l'image de base du système d'exploitation directement pour les applications autonomes, car toutes les dépendances .NET Core en sont satisfaites.

Par exemple, j'utiliserai une image SDK pour créer mon application, mais j'utiliserai aspnetcore-runtime pour l'expédier. Pas besoin d'expédier le SDK avec une application en cours d'exécution. Je veux que la taille de mes images soit la plus petite possible !

Pour moi, j'ai même créé un petit script PowerShell (fonctionne sous Windows ou Linux) qui construit et teste mon site Podcast (l'image taguée podcast:test) dans docker . Notez le mappage de volume ? Il stocke les résultats des tests à l'extérieur du conteneur afin que je puisse les consulter plus tard si j'en ai besoin.

#!/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

Assez lisse.

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

Découvrez comment les images .NET Core sont créées, gérées et maintenues. Cela m'a permis de faire fonctionner facilement mon site de podcast - une fois dockerisé - sur .NET Core sur un Raspberry Pi (ARM32).

Nouveau parrain ! Ne saisissez plus jamais de facture ! Avec DocSight OCR par ActivePDF, vous extrairez des données de factures, de bons de commande et d'autres documents à l'aide de la technologie de capture de données zonale. Réalisez la transformation numérique dès aujourd'hui !


Docker
  1. différence entre podman et docker.

  2. Qu'est-ce que Docker (et les conteneurs Linux ?)

  3. Quand et pourquoi utiliser Docker

  4. Détecter qu'une application .NET Core est en cours d'exécution dans un conteneur Docker et SkippableFacts dans XUnit

  5. .NET core X509Store sur Linux

Création, exécution et test de .NET Core et ASP.NET Core 2.1 dans Docker sur un Raspberry Pi (ARM32)

Un émulateur GameBoy côté serveur multi-joueurs écrit en .NET Core et Angular

Essayer de nouvelles images Docker Alpine .NET Core

.NET et Docker

ZEIT déploie désormais des applications Web open source ASP.NET Core avec Docker

Explorer ASP.NET Core avec Docker dans les conteneurs Linux et Windows