GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

.NET Core y Docker

Si tiene Docker instalado, puede ejecutar una muestra de .NET Core rápidamente como esta. Pruébalo:

docker run --rm microsoft/dotnet-samples

Si su Docker para Windows está en "modo contenedor de Windows", puede probar .NET Framework (el marco de Windows 4.x) de esta manera:

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

Hice un video la semana pasada con un artículo que muestra lo fácil que es obtener una aplicación en contenedores en Azure Y barato con facturación por segundo.

Las imágenes de contenedores son fáciles de compartir a través de Docker Hub, Docker Store y registros privados de Docker, como Azure Container Registry. Consulte también Visual Studio Tools para Docker. Todo funciona muy bien en conjunto.

Me gusta esta cita de Richard Lander:

Imagínese hace unos cinco años que alguien le dijera en una entrevista de trabajo que le importa tanto la coherencia que siempre incluye el sistema operativo con su aplicación. Probablemente no los habrías contratado. Sin embargo, ¡ese es exactamente el modelo que usa Docker!

¡Y es un buen modelo! Te da consistencia garantizada. "Los contenedores incluyen la aplicación y todas sus dependencias. La aplicación ejecuta el mismo código, independientemente de la computadora, el entorno o la nube". También es una buena manera de asegurarse de que su .NET subyacente esté actualizado con correcciones de seguridad:

Docker cambia las reglas del juego para adquirir y usar actualizaciones de .NET. Piense en lo que sucedió hace unos pocos años. Descargaría el último .NET Framework como un paquete de instalación de MSI en Windows y no necesitaría descargarlo nuevamente hasta que enviemos la próxima versión. Avance rápido hasta hoy. Enviamos imágenes de contenedores actualizadas a Docker Hub varias veces al mes.

Las imágenes de .NET se construyen usando las imágenes oficiales de Docker, lo cual es bueno.

Las imágenes .NET se construyen usando imágenes oficiales. Construimos sobre las imágenes oficiales de Alpine, Debian y Ubuntu para x64 y ARM. Al usar imágenes oficiales, dejamos el costo y la complejidad de actualizar periódicamente las imágenes base del sistema operativo y paquetes como OpenSSL, por ejemplo, a los desarrolladores que están más cerca de esas tecnologías. En cambio, nuestro sistema de compilación está configurado para compilar, probar y enviar automáticamente imágenes .NET siempre que se actualicen las imágenes oficiales que usamos. Con ese enfoque, podemos ofrecer .NET Core en varias distribuciones de Linux a bajo costo y publicar actualizaciones en cuestión de horas.

Aquí es donde puede encontrar repositorios de .NET Docker Hub:

Repositorios de .NET Core:

  • microsoft/dotnet:incluye .NET Core runtime, sdk y ASP.NET Core imágenes.
  • microsoft/aspnetcore:incluye imágenes de tiempo de ejecución de ASP.NET Core para .NET Core 2.0 y versiones anteriores. Utilice microsoft/dotnet para .NET Core 2.1 y versiones posteriores.
  • microsoft/aspnetcore-build:incluye ASP.NET Core SDK y node.js para .NET Core 2.0 y versiones anteriores. Utilice microsoft/dotnet para .NET Core 2.1 y versiones posteriores. Ver aspnet/anuncios #298.

Repositorios de .NET Framework:

  • microsoft/dotnet-framework:incluye .NET Framework runtime e imágenes sdk.
  • microsoft/aspnet:incluye imágenes en tiempo de ejecución de ASP.NET, para ASP.NET Web Forms y MVC, configuradas para IIS.
  • microsoft/wcf:incluye imágenes en tiempo de ejecución de WCF configuradas para IIS.
  • microsoft/iis:incluye IIS sobre la imagen base de Windows Server Core. Funciona pero no está optimizado para aplicaciones .NET Framework. En su lugar, se recomiendan microsoft/aspnet y microsoft/wcfrepos para ejecutar los respectivos tipos de aplicaciones.

Hay algunos tipos de imágenes en el repositorio de microsoft/dotnet:

  • sdk — Imágenes SDK de .NET Core, que incluyen la CLI de .NET Core, el tiempo de ejecución de .NET Core y ASP.NET Core.
  • tiempo de ejecución de aspnetcore — Imágenes de ASP.NET Core, que incluyen el tiempo de ejecución de .NET Core y ASP.NET Core.
  • tiempo de ejecución — Imágenes de tiempo de ejecución de .NET Core, que incluyen el tiempo de ejecución de .NET Core.
  • tiempo de ejecución-deps — Imágenes de dependencia de tiempo de ejecución de .NET Core, que incluyen solo las dependencias de .NET Core y no de .NET Core en sí. Esta imagen está destinada a aplicaciones independientes y solo se ofrece para Linux. Para Windows, puede usar la imagen base del sistema operativo directamente para aplicaciones independientes, ya que satisface todas las dependencias de .NET Core.

Por ejemplo, usaré una imagen SDK para compilar mi aplicación, pero usaré aspnetcore-runtime para enviarla. No es necesario enviar el SDK con una aplicación en ejecución. ¡Quiero mantener el tamaño de mis imágenes lo más pequeño posible!

Para mí, incluso hice un pequeño script de PowerShell (se ejecuta en Windows o Linux) que crea y prueba mi sitio de Podcast (la imagen etiquetada como podcast:test) dentro de Docker . Tenga en cuenta la asignación de volumen? Almacena los resultados de la prueba fuera del contenedor para que pueda verlos más tarde si es necesario.

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

Bastante hábil.

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

Infórmese sobre cómo se construyen, administran y mantienen las imágenes de .NET Core. Me facilitó la ejecución de mi sitio de podcasts, una vez dockerizado, en .NET Core en una Raspberry Pi (ARM32).

¡Nuevo patrocinador! ¡Nunca vuelva a escribir una factura! Con DocSight OCR de ActivePDF, extraerá datos de recibos, facturas, órdenes de compra y otros documentos mediante la tecnología de captura de datos zonales. ¡Logra la transformación digital hoy!


Docker
  1. Cómo instalar .NET Core en Debian 10

  2. diferencia entre podman y docker.

  3. Instalar Docker y WordPress en Ubuntu

  4. ¿Por qué Deis y qué es?

  5. Optimización de los tamaños de imagen de ASP.NET Core Docker

Creación, ejecución y prueba de .NET Core y ASP.NET Core 2.1 en Docker en una Raspberry Pi (ARM32)

Un emulador de GameBoy del lado del servidor para varios jugadores escrito en .NET Core y Angular

Probar nuevas imágenes de .NET Core Alpine Docker

.NET y Docker

ZEIT ahora implementa aplicaciones web ASP.NET Core de código abierto con Docker

Exploración de ASP.NET Core con Docker en contenedores de Linux y Windows