.NET 6 ahora está incluido en Ubuntu 22.04 (Jammy) y se puede instalar con solo apt install dotnet6. Este cambio es una gran mejora y simplificación para los usuarios de Ubuntu. También estamos lanzando .NET con Chiseled Ubuntu Containers, una nueva oferta de contenedores pequeños y seguros de Canonical. Estas mejoras son el resultado de una nueva asociación entre Canonical y Microsoft. Más información en este video Microsoft .NET 6 ya esta disponible en Ubuntu Linux
Aquí están los comandos para instalar .NET 6 SDK en Ubuntu 22.04 :
#sudo apt update
#sudo apt install dotnet6
También anunciamos que .NET 6 está disponible con Chiseled Ubuntu Containers . Nuestros amigos de Canonical han desarrollado un nuevo enfoque de cincel para crear imágenes de contenedores ultrapequeños. Estamos muy entusiasmados con eso. ¡La imagen de Ubuntu cincelada es 100MB
más pequeña que las imágenes de Ubuntu que ha estado usando hasta ahora!
Aquí está el comando para extraer la nueva imagen cincelada de ASP.NET:
docker pull mcr.microsoft.com/dotnet/nightly/aspnet:6.0-jammy-chiseled
También actualizamos nuestros ejemplos de dotnetapp y aspnetapp para que pueda probar .NET con Chiseled Ubuntu Containers.
Estas nuevas imágenes de contenedores mejoran significativamente la postura de seguridad:
- Imágenes ultrapequeñas (tamaño y superficie de ataque reducidos)
- Sin administrador de paquetes (evita toda una clase de ataques)
- Sin caparazón (evita toda una clase de ataques)
- No root (evita toda una clase de ataques)
Para colmo, Canonical y Microsoft se comprometen a trabajar juntos para garantizar que las nuevas versiones de .NET estén disponibles con las nuevas versiones de Ubuntu y que funcionen bien juntas. Esto incluye actualizaciones de seguridad y entrega segura de imágenes de contenedores.
Estamos muy emocionados de que .NET 6 esté disponible en Ubuntu 22.04 y que Canonical haya elegido trabajar con nosotros como su socio de lanzamiento para las imágenes de Ubuntu Chiseled. Esto es lo que Canonical dijo sobre el proyecto.
Canonical y Microsoft
Hace varios meses, la gente de Canonical y Microsoft comenzaron a trabajar juntos con el objetivo de hacer de Ubuntu un entorno aún mejor para los desarrolladores de .NET.
Teníamos dos objetivos principales en mente:
- Simplifique el uso de .NET en Ubuntu.
- Acorte la cadena de suministro entre Canonical y Microsoft.
Hace años que sabemos que muchos desarrolladores de .NET usan Ubuntu. Después de que nos pusimos a hablar, se hizo evidente que había algo que podíamos hacer para mejorar esa experiencia. Déjame decirte lo que hemos entregado.
.NET en APT
Ahora puede instalar .NET 6 con APT , creado por Canonical a través de source-build . Estos paquetes están disponibles con Ubuntu 22.04 (Jammy) y versiones posteriores. ¡Es una gran razón para actualizarse a Jammy
Consulte este aviso sobre el uso en Ubuntu 22.04packages.microsoft.com
ahora que .NET 6 está incluido en Ubuntu.
Hay varios paquetes :
dotnet6
— El SDK de .NET 6 (nombre corto).dotnet-sdk-6.0
— Igual que arriba (nombre largo).aspnet-runtime-6.0
— ASP.NET Núcleodotnet-runtime-6.0
— Tiempo de ejecución .NET
Le mostraré cómo instalar estas imágenes usando Docker (el mismo modelo se aplica en otros lugares):
rich@kamloops:~$ docker run --rm -it ubuntu:jammy
root@7d4dfca0ef55:/# apt update && apt install -y dotnet6
root@7d4dfca0ef55:/# dotnet --version
6.0.108
En caso de que eso no funcione, necesita registrar la siguiente fuente, en /etc/apt/sources.list:
deb http : //archive.ubuntu.com/ubuntu/ jammy-updates universe
Canonical y Microsoft trabajarán juntos para garantizar que estos paquetes se actualicen en el programa de lanzamiento mensual del equipo de .NET. Esto incluye que Microsoft comparta información de CVE (descripciones y código) con Canonical antes de los lanzamientos públicos. De manera similar, Canonical compartirá información de seguridad en la otra dirección.
Notas:
- Actualmente nos faltan compilaciones de Arm64. Esos vendrán pronto. Ambas compañías son firmes defensoras de Arm64.
- Las compilaciones de .NET 7 aún no están disponibles y probablemente no lo estarán hasta .NET 7 GA.
- Las cargas de trabajo de .NET SDK no están disponibles en paquetes (para ninguna distribución de Linux). Además, las cargas de trabajo de .NET MAUI no son compatibles con Linux.
.NET en contenedores cincelados de Ubuntu
Ahora puede usar .NET en Chiseled Ubuntu Containers . Chiseling ofrece la huella de contenedor más pequeña sin dejar de ser el Ubuntu que conoce y en el que confía. Es similar al distroless convencional , con una herramienta personalizada para cortar paquetes..deb
¡ Estas imágenes son 100MB
más pequeñas que las imágenes de Ubuntu que hemos ofrecido hasta ahora y no incluyen un usuario root!
Ofrecemos tres capas de imágenes de contenedor Chiseled Ubuntu, para Arm64 y x64, para .NET 6 y 7:
mcr.microsoft.com/dotnet/nightly/runtime-deps:6.0-jammy-chiseled
mcr.microsoft.com/dotnet/nightly/runtime:6.0-jammy-chiseled
mcr.microsoft.com/dotnet/nightly/aspnet:6.0-jammy-chiseled
Nota: Las imágenes se ofrecerán en nuestros nightly
repositorios mientras la oferta cincelada está en vista previa. Haremos otro anuncio cuando sean compatibles con la producción. Será en algún momento de este año, pero no hemos elegido un marco de tiempo, ya que nos hemos centrado en la habilitación básica.
Canonical también está publicando imágenes de contenedores Chiseled Ubuntu para .NET, que incluyen los nuevos paquetes APT, a través de Docker Hub:
- https://hub.docker.com/r/ubuntu/dotnet-deps
- https://hub.docker.com/r/ubuntu/dotnet-runtime
- https://hub.docker.com/r/ubuntu/dotnet-aspnet
Echemos un vistazo a la ganancia de tamaño. Todos los siguientes tamaños están sin comprimir (en disco, no en registro/tamaño de cable).
Primero, la capa.runtime-deps
- Ubuntu 22.04 (Jammy):
112MB
- Ubuntu cincelado 22.04 (Jammy):
12.9MB
Y en el otro extremo del espectro, la aspnet
capa.
- Ubuntu 22.04 (Jammy):
213MB
- Ubuntu cincelado 22.04 (Jammy):
104MB
¡Esa es una diferencia verdaderamente asombrosa! La gente de Canonical descubrió cómo eliminar 100 MB de archivos binarios y otro contenido de estas imágenes. Cuando empezamos a hablar, ¡no teníamos idea de que estaríamos hablando de una diferencia tan grande!
Los lectores cercanos notarán que el cincelado aspnet
es más pequeño que la capa existente. Eso es sorprendentemente bueno.runtime-deps
Es razonable preguntar cómo es Alpine . Es una distribución más nueva diseñada para ser súper pequeña y dividida en componentes desde el principio. Alpine es 9.84MB
por y para . Esos son números impresionantes, de nuevo sin comprimir. Esa es la razón clave por la que Alpine es tan popular (y por la que hemos publicado imágenes .NET durante años).runtime-deps:6.0-alpine
100MB
aspnet:6.0-alpine
Alpine es excelente (y también somos amigos de esa gente ), pero no es para todos ni para todas las aplicaciones, ya que usa musl , que es una variante diferente (e incompatible) libc
. Eso solo es importante si su aplicación incluye bibliotecas nativas. Si no es así (y la mayoría de las aplicaciones .NET no lo son), no necesita preocuparse por este detalle. El producto .NET en sí está feliz de ejecutarse con musl
o con glibc
cada PR en las pruebas dotnet/runtime para ambos.
Poniendo esto en perspectiva, esta es realmente una gran noticia si usa Ubuntu para el desarrollo y siempre deseó un Ubuntu pequeño para entregar en producción. Ahora tiene un camino directo desde el cuadro de desarrollo a la nube sin sorpresas de compatibilidad de distribución. Es sorprendente (y bastante sorprendente) ver a Ubuntu en el mismo estadio que Alpine. Felicitaciones a la gente de Canonical por un gran logro de ingeniería.
También vale la pena mencionar que Chainguard está buscando imágenes de contenedores mínimas para un futuro seguro . Ese proyecto se ejecuta fuera de la organización sin distribución de GitHub. Estamos observando ese proyecto y nos alegra ver más interés en imágenes de contenedores pequeños y más seguros. Creemos que las imágenes de contenedor mínimas + no raíz son el futuro.
Al igual que nuestras imágenes de Alpine , hemos optado por no incluir la UCI . Probablemente duplicaría el tamaño de la imagen. Eso significa que hemos habilitado el modo invariable de globalización . Para algunas aplicaciones, eso está bien, y la ganancia de tamaño es excelente. Para otros, es un factor decisivo. Es posible que tengamos que ajustar esta parte del plan según los comentarios. Hemos documentado el patrón para agregar ICU a sus imágenes.
Fuente: https://devblogs.microsoft.com/dotnet/dotnet-6-is-now-in-ubuntu-2204/