Todo sobre Apple, Android, Juegos Apks y Sitios de Peliculas

Cómo ejecutar una aplicación .NET en Docker

Docker es un servicio de contenedorización que se utiliza para ejecutar aplicaciones en entornos aislados empaquetados con todas las dependencias y el código que necesita para funcionar. Puede ejecutar todo tipo de aplicaciones, incluidos programas basados ​​en .NET que utilizan imágenes en tiempo de ejecución proporcionadas por Microsoft.

Dockerizando .NET

microsoft proporciona imágenes base prediseñadas para ejecutar aplicaciones .NET. No necesitará encargarse de la instalación del tiempo de ejecución de .NET o SDK en su contenedor Docker, ya que simplemente puede ampliar desde la imagen base de Microsoft la versión de .NET que utiliza su aplicación.

A menos que planee implementar Contenedores de Windows en un servidor Windows, deberá utilizar .NET Core o .NET 5. El tiempo de ejecución anterior de .NET Framework no es multiplataforma y no se ejecutará en contenedores basados ​​en Linux.

Si no tiene Docker instalado en su máquina de desarrollo, deberá Necesito instalar Docker Desktop para tener acceso a la CLI. Si está utilizando WSL en Windows, querrá habilitar el motor basado en WSL 2, que proporciona un mejor rendimiento.

Para probar las cosas, crearemos una nueva aplicación API ASP.NET. El mismo procedimiento general se aplicará a cualquier tipo de aplicación, ya que todo lo que Docker hace es ejecutar una compilación cada vez que construye el contenedor e iniciar su aplicación con un comando de punto de entrada.

Crea un nuevo archivo llamado

 Dockerfile 

en la raíz de su proyecto, donde se encuentra su solución. Pegue la siguiente configuración:

FROM mcr.microsoft.com/dotnet/core/sdk AS build-env

WORKDIR /app

# Copy csproj and restore

COPY *.csproj ./

RUN dotnet restore

# Copy everything else and build

COPY . ./

RUN dotnet publish -o out

# Build runtime image

FROM mcr.microsoft.com/dotnet/core/runtime

WORKDIR /app

COPY --from=build-env /app/out .

ENTRYPOINT ["dotnet", "DockerTest.dll"]

Este Dockerfile extrae la imagen del SDK de .NET Core para realizar la compilación. Copia el .csproj y lo restaura, luego copia todo lo demás y ejecuta una compilación. Luego, crea una nueva imagen a partir de la imagen de .NET Runtime y copia los artefactos de compilación.

Finalmente, el punto de entrada se define aquí como dotnet DockerTest.dll. Esto iniciará el servidor web ASP.NET, aunque es posible que deba cambiar los parámetros de su aplicación o especificar un comando de punto de entrada completamente diferente.

Puede probar la ejecución de su contenedor con Docker Container Run, pasándolo en el ID del contenedor de compilación:

docker container run containerid

Para una aplicación ASP.NET, necesitará abrir puertos asignando un puerto en el host a un puerto en el contenedor:

docker run -p 80:80 containerid

Puede leer nuestra guía para trabajar con Docker y Dockerfiles para obtener más información.