.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.