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

.NET et Docker

.NET et .NET Core (et Windows !) s'améliorent de plus en plus avec Docker. J'exécute Docker pour Windows car il prend en charge à la fois les conteneurs Linux et les conteneurs Windows. Ils ont à la fois un canal Stable et Edge. Le canal Edge (bêta) est régulièrement mis à jour et, en règle générale, s'améliore de plus en plus au cours de l'année où je l'utilise.

En remarque légèrement sans rapport, j'exécute également Docker sur mon Synology NAS avec un certain nombre de conteneurs, ainsi que .NET Core (mon Nas est une puce Intel), Minecraft Server, Plex Server et CrashPlan.

REMARQUE : Docker pour Windows nécessite Windows 10 Pro 64 bits et Microsoft Hyper-V. Veuillez consulter Ce qu'il faut savoir avant d'installer pour une liste complète des prérequis.

L'équipe .NET de Microsoft a ordonné et organisé ses dockerfiles. Cela peut sembler initialement le contraire, avec beaucoup de balises et de noms cryptés, mais il existe une méthode claire que vous pouvez lire ici.

Ils publient leurs images Docker dans quelques référentiels différents sur Docker Hub. Il est important de segmenter les images pour qu'elles soient plus faciles à trouver, aussi bien sur le site Docker Hub qu'avec le docker search commande.

  • microsoft/dotnet :images d'exécution et SDK .NET Core pour Linux et Nano Server.
  • microsoft/aspnetcore :images ASP.NET Core pour Linux et Nano Server.
  • microsoft/aspnetcore-build :images ASP.NET Core pour Linux et Nano Server, destinées à la création d'applications.
  • microsoft/dotnet-framework – Images .NET Framework 3.5 et 4.6.2 pour Windows Server Core.
  • microsoft/aspnet – Images .NET Framework 3.5 et 4.6.2 ASP.NET pour Windows Server Core.

Il y a aussi des exemples sur :

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

Les échantillons sont super faciles à essayer - ARRÊTEZ DE LIRE ET ESSAYEZ CELA MAINTENANT.;)

Je suis toujours impressionné par une belle barre de progression ASCII asynchrone. Je suis facile à impressionner. Il s'agit d'un échantillon "hello world" avec un art ASCII surprise. Je ne vous spoilerai pas.

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

Toutes les images sont gérées et maintenues sur GitHub afin que vous puissiez vous impliquer si vous ne creusez pas les images ou les fichiers.

Une chose intéressante à souligner est la différence entre les images de développement et les images de production, ainsi que les images que vous utiliseriez dans des situations CI/CD (Build Server) pour créer d'autres images. Voici quelques exemples de GitHub :

Développement

  • dotnetapp-dev - Cet exemple est bon pour le développement et la construction car il s'appuie sur l'image du SDK .NET Core. Il effectue dotnet commandes en votre nom, ce qui réduit le temps nécessaire à la création d'images Docker (en supposant que vous apportiez des modifications, puis que vous les testiez dans un conteneur, de manière itérative).

Fabrication

  • dotnetapp-prod :cet exemple convient à la production, car il s'appuie sur l'image d'exécution .NET Core, et non sur l'image plus grande du SDK .NET Core. La plupart des applications n'ont besoin que du runtime, ce qui réduit la taille de l'image de votre application.
  • dotnetapp-selfcontained - Cet exemple convient également aux scénarios de production car il s'appuie sur une image du système d'exploitation (sans .NET Core). Les applications .NET Core autonomes incluent .NET Core dans le cadre de l'application et non en tant que composant installé de manière centralisée dans une image de base.
  • dotnetapp-current - Cet exemple montre comment configurer une application pour utiliser l'image .NET Core 1.1. Le .csproj et le Dockerfile ont été mis à jour pour dépendre de .NET Core 1.1. Cet exemple est identique à dotnetapp-prod, à l'exception du fait qu'il s'appuie sur une version ultérieure de .NET Core.
  • aspnetapp - Cet exemple illustre une application Web ASP.NET Core Dockerisée

Il existe une excellente prise en charge de Docker dans VS Code, Visual Studio 2017 et Visual Studio pour Mac (le canal de prévisualisation). Avec VS et Docker sous Windows, vous pouvez même F5 (déboguer) dans un conteneur Linux.

Certains d'entre vous ont peut-être des applications .NET Framework exécutées sur des machines virtuelles que vous aimeriez déplacer vers une infrastructure de conteneurs. Il existe un outil appelé Image2Docker que Docker maintient qui pourrait aider. Il aide à migrer les machines virtuelles vers des conteneurs. Consultez la conférence Image2Docker DockerCon ou lisez Docker's Convert ASP.NET Web Servers To Docker with ImageDocker pour en savoir plus.

"Porte-conteneurs" par Service océanique national de la NOAA est sous licence CC BY 2.0

Parrain : Découvrez Seq :une journalisation centralisée simple, sur votre infrastructure, avec un excellent support pour ASP.NET Core et Serilog. Télécharger la version 4.0.


Docker
  1. Comment installer .NET Core sur Debian 10

  2. différence entre podman et docker.

  3. Quand et pourquoi utiliser Docker

  4. Pourquoi Deis et qu'est-ce que c'est ?

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

.NET Core et Docker

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

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