.NET y .NET Core (¡y Windows!) han mejorado cada vez más con Docker. Ejecuto Docker para Windows, ya que admite contenedores de Linux y contenedores de Windows. Tienen un canal Stable y Edge. El canal Edge (Beta) se actualiza periódicamente y, por regla general, mejora cada vez más durante el año que lo he estado ejecutando.
Como nota al margen ligeramente ajena, también estoy ejecutando Docker en mi Synology NAS con varios contenedores, así como .NET Core (mi Nas es un chip Intel), Minecraft Server, Plex Server y CrashPlan.
El equipo de .NET de Microsoft ha estado ordenando y organizando sus archivos acoplables. Puede parecer inicialmente lo contrario, con muchas etiquetas y nombres crípticos, pero hay un método claro sobre el que puede leer aquí.
Publican sus imágenes de Docker en algunos repositorios diferentes en Docker Hub. Es importante segmentar las imágenes para que sean más fáciles de encontrar, tanto en la web de Docker Hub como con el docker search
dominio.
- microsoft/dotnet:.NET Core Runtime e imágenes SDK para Linux y Nano Server.
- microsoft/aspnetcore:imágenes de ASP.NET Core para Linux y Nano Server.
- microsoft/aspnetcore-build:imágenes de ASP.NET Core para Linux y Nano Server, diseñadas para crear aplicaciones.
- microsoft/dotnet-framework:imágenes de .NET Framework 3.5 y 4.6.2 para Windows Server Core.
- microsoft/aspnet:imágenes de .NET Framework 3.5 y 4.6.2 ASP.NET para Windows Server Core.
También hay algunas muestras en:
- microsoft/dotnet-samples:ejemplos de .NET Core.
- microsoft/dotnet-framework-samples:ejemplos de .NET Framework.
Las muestras son muy fáciles de probar:DEJA DE LEER Y PRUEBA ESTO AHORA.;)
Siempre estoy impresionado con una buena barra de progreso ASCII asíncrona. Soy fácil de impresionar. Esta es una muestra de "hola mundo" con un arte ASCII sorpresa. No te consentiré.
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
Todas las imágenes se administran y mantienen en GitHub para que pueda involucrarse si no está investigando las imágenes o los archivos.
Una cosa interesante para señalar es la diferencia entre las imágenes de desarrollo y las imágenes de producción, así como las imágenes que usaría en situaciones de CI/CD (Build Server) para construir otras imágenes. Estos son algunos ejemplos de GitHub:
Desarrollo
- dotnetapp-dev:esta muestra es buena para el desarrollo y la compilación, ya que se basa en la imagen SDK de .NET Core. Realiza
dotnet
comandos en su nombre, lo que reduce el tiempo que se tarda en crear imágenes de Docker (suponiendo que realice cambios y luego los pruebe en un contenedor, de forma iterativa).
Producción
- dotnetapp-prod:esta muestra es buena para la producción, ya que se basa en la imagen de .NET Core Runtime, no en la imagen más grande de .NET Core SDK. La mayoría de las aplicaciones solo necesitan el tiempo de ejecución, lo que reduce el tamaño de la imagen de su aplicación.
- dotnetapp-selfcontained:esta muestra también es buena para escenarios de producción, ya que se basa en una imagen del sistema operativo (sin .NET Core). Las aplicaciones .NET Core independientes incluyen .NET Core como parte de la aplicación y no como un componente instalado centralmente en una imagen base.
- dotnetapp-current:este ejemplo demuestra cómo configurar una aplicación para usar la imagen .NET Core 1.1. Tanto .csproj como Dockerfile se actualizaron para depender de .NET Core 1.1. Este ejemplo es igual que dotnetapp-prod con la excepción de que se basa en una versión posterior de .NET Core.
- aspnetapp:este ejemplo muestra una aplicación web ASP.NET Core Dockerizada
Existe una excelente compatibilidad con Docker en VS Code, Visual Studio 2017 y Visual Studio para Mac (el canal de vista previa). Con VS y Docker en Windows, incluso puede F5 (depurar) en un contenedor de Linux.
Algunos de ustedes pueden tener aplicaciones de .NET Framework ejecutándose en máquinas virtuales que les encantaría trasladar a una infraestructura de contenedores. Hay una herramienta llamada Image2Docker que Docker mantiene que podría ayudar. Ayuda a migrar máquinas virtuales a contenedores. Consulte la charla de Image2Docker DockerCon o lea Convert ASP.NET Web Servers To Docker with ImageDocker de Docker para obtener más información.
“Barco portacontenedores” por Servicio Nacional Oceánico de la NOAA tiene licencia bajo CC POR 2.0
Patrocinador: Consulte Seq:registro centralizado simple, en su infraestructura, con excelente soporte para ASP.NET Core y Serilog. Descarga la versión 4.0.