Ejecución de un contenedor personalizado en Azure

Azure App Service proporciona las pilas de aplicaciones predefinidas en Windows, como ASP.NET o Node.js, que se ejecutan en IIS. Sin embargo, las pilas de aplicaciones preconfiguradas bloquean el sistema operativo e impiden el acceso de bajo nivel. Los contenedores de Windows personalizados no tienen estas restricciones y permiten a los desarrolladores personalizar completamente los contenedores y proporcionar a las aplicaciones contenedorizadas acceso total a la funcionalidad de Windows.

En este inicio rápido se muestra cómo implementar una aplicación ASP.NET, que está en una imagen de Windows, en Azure Container Registry desde Visual Studio. La aplicación se ejecuta en un contenedor personalizado en Azure App Service.

Para completar este inicio rápido necesita instalar:

  • Instalar Docker para Windows
  • Cambiar Docker para ejecutar contenedores de Windows
  • Instale Visual Studio 2022 con las cargas de trabajo ASP.NET y desarrollo web y desarrollo de Azure. En Visual Studio 2022 Community, asegúrese de que el componente de plantillas de proyecto y elemento de .NET Framework está seleccionado con la carga de trabajo de ASP.NET y desarrollo web. Si ya ha instalado Visual Studio 2022:
    • Para instalar las actualizaciones más recientes de Visual Studio, seleccione Ayuda>Buscar actualizaciones.
    • Para agregar las cargas de trabajo en Visual Studio, seleccione Herramientas>Obtener herramientas y características.

1 - Creación de una aplicación web ASP.NET

Cree una aplicación web ASP.NET siguiendo estos pasos:

  1. Abra Visual Studio y seleccione Crear un proyecto.

  2. En Crear un proyecto, busque y elija Aplicación web ASP.NET Core (.NET Framework) para C# y, a continuación, seleccione Siguiente.

    Captura de pantalla del cuadro de diálogo Crear un proyecto.

  3. En Configurar el nuevo proyecto, en Nombre de proyecto, asigne el nombre de myfirstazurewebapp a la aplicación. En Marco, seleccione .NET Framework 4.8 y después Crear.

    Captura de pantalla de Configuración del proyecto de aplicación web.

  4. Puede implementar cualquier tipo de aplicación web de ASP.NET en Azure. Para este inicio rápido, elija la plantilla MVC.

  5. En Autenticación, seleccione Ninguna. En Avanzadas, seleccione Compatibilidad con Docker y desactive Configurar para HTTPS. Seleccione Crear.

    Captura de pantalla del cuadro de diálogo Creación de una aplicación web ASP.NET.

  6. Si el archivo Dockerfile no se abre automáticamente, ábralo desde el Explorador de soluciones.

  7. Necesita una imagen principal compatible. Cambie la imagen primaria reemplazando la línea FROM con el código siguiente y guarde el archivo:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. En el menú de Visual Studio, seleccione Depurar>Iniciar sin depurar para ejecutar la aplicación web localmente.

    Captura de pantalla de la aplicación que se ejecuta locamente.

2 - Publicación en Azure Container Registry

  1. En Explorador de soluciones, haga clic con el botón derecho en el proyecto myfirstazurewebapp y seleccione Publicar.

  2. En Destino, seleccione Container Registry para Docker y, después, seleccione Siguiente.

    Captura de pantalla de la pantalla Selección de Container Registry para Docker.

  3. En Destino específico, seleccione Azure Container Registry y, después, seleccione Siguiente.

    Captura de pantalla de Publicar de la página de información general.

  4. En Publicar, asegúrese de que se ha seleccionado la suscripción correcta. En Registros de contenedor, seleccione el botón + para crear una nueva instancia de Azure Container Registry.

    Captura de la pantalla Crear una instancia de Azure Container Registry.

  5. En Crear nuevo, asegúrese de que se ha elegido la suscripción correcta. En Grupo de recursos, seleccione Nuevo y escriba myResourceGroup como nombre y seleccione Aceptar. En SKU, seleccione Básico. En Ubicación del Registro, seleccione una ubicación del Registro y, a continuación, haga clic en Crear.

    Captura de pantalla de detalles de Azure Container Registry.

  6. En Publicar, en Container Registry, seleccione el registro que creó y, después, Finalizar.

    Captura de la pantalla Seleccionar una instancia existente de Azure Container Registry.

    Espere a que la implementación se complete. La página Publicar muestra ahora el nombre del repositorio. Seleccione el botón de copia para copiar el repositorio para su uso posterior.

    Captura de pantalla en la que se resalta el nombre del repositorio.

3 - Creación de un contenedor personalizado con Windows

  1. Inicie sesión en Azure Portal.

  2. Elija Crear un recurso en la esquina superior izquierda de Azure Portal.

  3. En Servicios populares, seleccione Crear en Aplicación web.

  4. En Crear aplicación web, elija la suscripción y un grupo de recursos. Si es necesario, puede crear un grupo de recursos.

  5. Proporcione un nombre de aplicación, como win-container-demo. Elija Contenedor de Docker para Publicar y Windows para Sistema operativo. Seleccione Siguiente: Docker para continuar.

    Captura de pantalla de Crear una instancia de Web App for Containers.

  6. En Origen de imagen, elija Docker Hub y en Imagen y etiqueta, escriba el nombre del repositorio que copió en Publicar en Azure Container Registry.

    Captura de pantalla de Configurar una instancia de Web App for Containers.

    Si tiene una imagen personalizada de la aplicación web en otra parte como, por ejemplo, en Azure Container Registry o en cualquier otro repositorio privado, puede configurarla aquí. Seleccione Revisar y crear para continuar.

  7. Compruebe todos los detalles y, a continuación, seleccione Crear y espere a que Azure cree los recursos necesarios. Captura de pantalla de Crear una instancia de Web App for Containers.

4 - Desplazamiento al contenedor personalizado

Una vez completada la operación de Azure, se muestra un cuadro de notificación.

Captura de pantalla de una implementación correcta.

  1. Haga clic en Ir al recurso.

  2. En la información general de este recurso, siga el vínculo situado junto a URL.

Se abre una nueva página del explorador en la página siguiente:

Captura de pantalla de inicio del contenedor personalizado de Windows.

Espere unos minutos e inténtelo de nuevo, hasta que llegue a la página principal predeterminada de ASP.NET:

Captura de pantalla de ejecución del contenedor personalizado de Windows.

¡Enhorabuena! Ya está ejecutando el primer contenedor de Windows personalizado en Azure App Service.

5 - Consulta de los registros de inicio del contenedor

El contenedor de Windows puede tardar un tiempo en cargarse. Para ver el progreso, vaya a la siguiente dirección URL sustituyendo <app_name> por el nombre de la aplicación.

https://<app_name>.scm.azurewebsites.net/api/logstream

Los registros transmitidos tienen este aspecto:

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

6 - Actualización local y nueva implementación

  1. En Visual Studio, en el Explorador de soluciones, abra Vistas>Inicio>Index.cshtml.

  2. Busque la etiqueta HTML <div class="jumbotron"> en la parte superior y reemplace el elemento entero por el código siguiente:

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. Para volver a realizar la implementación en Azure, haga clic con el botón derecho en el proyecto myfirstazurewebapp, en el Explorador de soluciones y elija Publicar.

  4. En la página de publicación, seleccione Publicar y espere hasta que la publicación se complete.

  5. Para indicar a App Service que extraiga la nueva imagen de Docker Hub, reinicie la aplicación. Volviendo a la página de aplicación en el portal, haga clic en Reiniciar>.

    Captura de pantalla de Información general de App Service con el botón Reiniciar resaltado.

Vuelva a desplazarse a la aplicación de contenedor personalizada. Al actualizar la página web, la aplicación debe volver a la página "Iniciando" al principio y luego volver a mostrar la página web actualizada transcurridos unos minutos.

Captura de pantalla de la aplicación web actualizada en Azure.

7 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.

En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.

En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.

Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.

Pasos siguientes

Azure App Service en Linux proporciona pilas de aplicaciones predefinidas en Linux con compatibilidad con lenguajes como .NET, PHP o Node.js entre otros. También puede usar una imagen personalizada de Docker para ejecutar la aplicación web en una pila de aplicaciones aún sin definir en Azure. En este inicio rápido se muestra cómo implementar una imagen desde Azure Container Registry (ACR) en App Service.

Nota

Para obtener información sobre cómo ejecutar aplicaciones en contenedores en un entorno sin servidor, consulte Container Apps.

Para completar este inicio rápido necesita instalar:

1 - Creación de un registro de contenedor

En este inicio rápido, se usa Azure Container Registry como registro de su elección. Puede usar otros registros, pero los pasos pueden diferir ligeramente.

Cree un registro de contenedor según las instrucciones que se indican en Inicio rápido: Creación de un instancia de Azure Container Registry mediante Azure Portal.

Importante

Asegúrese de establecer la opción Usuario administrador en Habilitar al crear el registro de contenedor de Azure. También puede establecerla en la sección Claves de acceso de la página de registro en Azure Portal. Esta opción de configuración es necesaria para el acceso a App Service. Para obtener información sobre la identidad administrada, consulte Implementación desde el tutorial de ACR.

2 - Inicio de sesión

  1. Inicie Visual Studio Code.

  2. Seleccione el logotipo de Azure en la barra de actividades, vaya al explorador APP SERVICE, después, seleccione Iniciar sesión en Azure y siga las instrucciones.

    Captura de pantalla de inicio de sesión en Azure en Visual Studio Code.

  3. En la barra de estado de la parte inferior, compruebe la dirección de correo electrónico de la cuenta de Azure. Se debe mostrar la suscripción en el explorador APP SERVICE.

  4. En la barra de actividades, seleccione el logotipo de Docker. En el explorador REGISTROS, compruebe que aparece el registro de contenedor que ha creado.

    Captura de pantalla que muestra el valor de Registros con Azure expandido.

3 - Comprobación de los requisitos previos

Compruebe que tiene Docker instalado y en ejecución. El siguiente comando mostrará la versión de Docker si se está ejecutando.

docker --version

4 - Creación y compilación de una imagen

  1. En Visual Studio Code, abra una carpeta vacía y agregue un archivo llamado Dockerfile. En el archivo Dockerfile, pegue el contenido en función del marco de lenguaje deseado:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

ENV ASPNETCORE_URLS "http://*:${PORT}"

ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]

En este archivo Dockerfile, la imagen primaria es uno de los contenedores de .NET integrados de App Service. Puede encontrar los archivos de código fuente en el repositorio de GitHub Azure-App-Service/ImageBuilder, en GenerateDockerFiles/dotnetcore. Su archivo Dockerfile copia una aplicación sencilla de .NET en /defaulthome/hostingstart. El archivo Dockerfile simplemente inicia esa aplicación.

  1. Abra la paleta de comandos y escriba Docker Images: Build Image (Imágenes de Docker: compilar imagen). Pulse Entrar para ejecutar el comando.

  2. En el cuadro de etiqueta de imagen, especifique la etiqueta que desee en el formato siguiente: <acr-name>.azurecr.io/<image-name>/<tag>, donde <acr-name> es el nombre del registro de contenedor que ha creado. Presione ENTRAR.

  3. Cuando la imagen termine de compilarse, haga clic en Actualizar en la parte superior del explorador IMÁGENES y compruebe que la imagen se ha compilado correctamente.

    Captura de pantalla que muestra la imagen compilada con la etiqueta.

5 - Implementación en el registro de contenedor

  1. En la barra de actividades, haga clic en el icono de Docker. En el explorador IMÁGENES, busque la imagen compiló.

  2. Expanda la imagen, haga clic con el botón derecho en la etiqueta que desee y haga clic en Insertar.

  3. Asegúrese de que la etiqueta de imagen comienza por <acr-name>.azurecr.io y pulse Entrar.

  4. Cuando Visual Studio Code finalice la inserción de la imagen en el registro de contenedor, haga clic en Actualizar en la parte superior del explorador REGISTROS y compruebe que la imagen se ha insertado correctamente.

    Captura de pantalla que muestra la imagen implementada en Azure Container Registry.

6 - Implementación en App Service

  1. En el explorador REGISTROS, expanda la imagen, haga clic derecho en la etiqueta y seleccione Implementar imagen en Azure App Service.
  2. Siga las indicaciones para elegir una suscripción, un nombre de aplicación globalmente único, un grupo de recursos y un plan de App Service. Elija B1 Básico como plan de tarifa y una región cercana.

Después de la implementación, la aplicación está disponible en http://<app-name>.azurewebsites.net.

Un grupo de recursos es una colección con nombre de todos los recursos de la aplicación en Azure. Por ejemplo, un grupo de recursos puede contener una referencia a un sitio web, una base de datos y una función de Azure.

Un plan de App Service define los recursos físicos que se van a usar para hospedar el sitio web. Este inicio rápido usa un plan de hospedaje básico en la infraestructura de Linux, lo que significa que el sitio se hospedará en una máquina Linux junto con otros sitios web. Si empieza con el plan básico, puede usar Azure Portal para escalar verticalmente de modo que el suyo sea el único sitio que se ejecute en una máquina. Para conocer los precios, consulte Precios de App Service.

7 - Exploración del sitio web

El panel Salida muestra el estado de las operaciones de implementación. Cuando finalice la operación, seleccione Abrir sitio en la notificación emergente para abrir el sitio en el explorador.

8 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.

En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.

En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.

Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.

Pasos siguientes

Ha completado correctamente este inicio rápido.

La aplicación de App Service extrae del registro de contenedor cada vez que se inicia. Si recompila la imagen, solo tiene que insertarla en el registro de contenedor y la aplicación extrae la imagen actualizada cuando se reinicia. Para indicar a la aplicación que extraiga la imagen actualizada inmediatamente, reiníciela.

Otras extensiones de Azure:

Azure App Service en Linux proporciona pilas de aplicaciones predefinidas en Linux con compatibilidad con lenguajes como .NET, PHP o Node.js entre otros. También puede usar una imagen personalizada de Docker para ejecutar la aplicación web en una pila de aplicaciones aún sin definir en Azure. En este inicio rápido se muestra cómo implementar una imagen desde Azure Container Registry en Azure App Service.

Nota

Para obtener información sobre cómo ejecutar aplicaciones en contenedores en un entorno sin servidor, consulte Container Apps.

Para completar este inicio rápido necesita instalar:

1 - Clonación del repositorio de ejemplo

Clone la aplicación de ejemplo .NET 6.0 con el siguiente comando:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

2 - Inserción de la imagen en Azure Container Registry

Asegúrese de que se encuentra en la carpeta raíz del repositorio clonado. Este repositorio contiene un archivo Dockerfile.linux.

  1. Inicie sesión en la CLI de Azure.

    az login
    
  2. Inicie sesión en Azure Container Registry.

    az acr login -n <your_registry_name>
    
  3. Compile la imagen de contenedor. Vamos a asignar un nombre a la imagen dotnetcore-docs-hello-world-linux.

    docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux . 
    
  4. Inserción de una imagen de contenedor en Azure Container Registry.

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux:latest
    

    Nota

    Dockerfile establece el número de puerto en 80 internamente. Para más información sobre cómo configurar el contenedor, consulte Configuración de un contenedor personalizado.

3 - Implementación en Azure

Inicio de sesión en Azure Portal

Inicie sesión en Azure Portal.

Creación de recursos de Azure

  1. Escriba app services en la búsqueda. En Servicios, seleccione App Services.

    Captura de pantalla de la búsqueda de servicios de aplicaciones en Azure Portal.

  2. En la página App Services, seleccione + Crear.

  3. En la pestaña Aspectos básicos, en Detalles del proyecto, asegúrese de que esté seleccionada la suscripción correcta y, a continuación, seleccione Crear nuevo grupo de recursos. Escriba myResourceGroup para el nombre.

    Captura de pantalla de la sección Detalles del proyecto en la que se muestra dónde se selecciona la suscripción de Azure y el grupo de recursos de la aplicación web.

  4. En Detalles de la instancia, escriba un nombre único global para la aplicación web y seleccione Contenedor de Docker. Seleccione Linux como Sistema operativo. Seleccione la Región desde la que quiere atender la aplicación.

    Captura de pantalla de la sección Detalles de la instancia, en la que se proporciona un nombre para la máquina virtual y se selecciona su región, imagen y tamaño.

  5. En Plan de servicio de aplicaciones, seleccione Crear nuevo plan de App Service. Escriba myAppServicePlan como nombre. Para cambiar al nivel Gratis, seleccione Cambiar tamaño, elija la pestaña Desarrollo/pruebas, seleccione F1 y luego el botón Aplicar situado en la parte inferior de la página.

    Captura de pantalla de la sección Cuenta de administrador, en la que se especifican el nombre de usuario y la contraseña del administrador.

  6. Seleccione el botón Siguiente: Docker > situado en la parte inferior de la página.

  7. En la pestaña Docker, seleccione Contenedor único en Opciones y Azure Container Registry como Origen de imagen. En Opciones de Azure Container Registry, establezca los valores siguientes:

    • Registro: seleccione Azure Container Registry.
    • Imagen: seleccione dotnetcore-docs-hello-world-linux.
    • Etiqueta: seleccione más reciente.

    Captura de pantalla que muestra las opciones de Azure Container Registry.

  8. Seleccione el botón Revisar y crear de la parte inferior de la página.

    Captura de pantalla que muestra el botón Revisar y crear en la parte inferior de la página.

  9. Después de que se ejecute la validación, seleccione el botón Crear en la parte inferior de la página.

  10. Una vez finalizada la implementación, seleccione Ir al recurso.

    Captura de pantalla que muestra el siguiente paso para ir al recurso.

4 - Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web en la dirección URL http://<app-name>.azurewebsites.net.

Captura de pantalla que muestra la aplicación implementada.

5 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.

En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.

En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.

Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.

Pasos siguientes

Ha completado correctamente este inicio rápido.

La aplicación de App Service extrae del registro de contenedor cada vez que se inicia. Si recompila la imagen, solo tiene que insertarla en el registro de contenedor y la aplicación extrae la imagen actualizada cuando se reinicia. Para indicar a la aplicación que extraiga la imagen actualizada inmediatamente, reiníciela.

Azure App Service proporciona las pilas de aplicaciones predefinidas en Windows, como ASP.NET o Node.js, que se ejecutan en IIS. Sin embargo, las pilas de aplicaciones preconfiguradas bloquean el sistema operativo e impiden el acceso de bajo nivel. Los contenedores de Windows personalizados no tienen estas restricciones y permiten a los desarrolladores personalizar completamente los contenedores y proporcionar a las aplicaciones contenedorizadas acceso total a la funcionalidad de Windows.

En este inicio rápido se muestra cómo implementar una aplicación ASP.NET en una imagen de Windows desde Azure Container Registry en Azure App Service.

Para completar este inicio rápido necesita instalar:

1 - Clonación del repositorio de ejemplo

Clone la aplicación de ejemplo .NET 6.0 con el siguiente comando:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

2 - Inserción de la imagen en Azure Container Registry

Asegúrese de que se encuentra en la carpeta raíz del repositorio clonado. Este repositorio contiene un archivo Dockerfile.windows. Usaremos Windows Nano Server Long Term Servicing Channel (LTSC) 2022 como sistema operativo base, llamando explícitamente a nuestra base de Windows.

Nota

Aunque se trata de un contenedor de Windows, las rutas de acceso todavía deben utilizar barras diagonales. Consulte Escritura de un archivo Dockerfile para obtener más detalles.

  1. Inicie sesión en la CLI de Azure.

    az login
    
  2. Inicie sesión en Azure Container Registry.

    az acr login -n <your_registry_name>
    
  3. Compile la imagen de contenedor. Vamos a asignar un nombre a la imagen dotnetcore-docs-hello-world-windows.

    docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows . 
    
  4. Inserción de una imagen de contenedor en Azure Container Registry.

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows:latest
    

    Nota

    Dockerfile establece el número de puerto en 80 internamente. Para más información sobre cómo configurar el contenedor, consulte Configuración de un contenedor personalizado.

3 - Implementación en Azure

Inicio de sesión en Azure Portal

Inicie sesión en Azure Portal.

Creación de recursos de Azure

  1. Escriba app services en la búsqueda. En Servicios, seleccione App Services.

    Captura de pantalla de la búsqueda de servicios de aplicaciones en Azure Portal.

  2. En la página App Services, seleccione + Crear.

  3. En la pestaña Aspectos básicos, en Detalles del proyecto, asegúrese de que esté seleccionada la suscripción correcta y, a continuación, seleccione Crear nuevo grupo de recursos. Escriba myResourceGroup para el nombre.

    Captura de pantalla de la sección Detalles del proyecto en la que se muestra dónde se selecciona la suscripción de Azure y el grupo de recursos de la aplicación web.

  4. En Detalles de la instancia, escriba un nombre único global para la aplicación web y seleccione Contenedor de Docker. Seleccione Windows como Sistema operativo. Seleccione la Región desde la que quiere atender la aplicación.

    Captura de pantalla de la sección Detalles de la instancia, en la que se proporciona un nombre para la máquina virtual y se selecciona su región, imagen y tamaño.

  5. En Plan de servicio de aplicaciones, seleccione Crear nuevo plan de App Service. Escriba myAppServicePlan como nombre. Para cambiar al nivel Gratis, seleccione Cambiar tamaño, elija la pestaña Desarrollo/pruebas, seleccione P1v3 y luego el botón Aplicar situado en la parte inferior de la página.

    Captura de pantalla de la sección Cuenta de administrador, en la que se especifican el nombre de usuario y la contraseña del administrador.

  6. Seleccione el botón Siguiente: Docker > situado en la parte inferior de la página.

  7. En la pestaña Docker, seleccione Azure Container Registry como Origen de imagen. En Opciones de Azure Container Registry, establezca los valores siguientes:

    • Registro: seleccione Azure Container Registry.
    • Imagen: seleccione dotnetcore-docs-hello-world-windows.
    • Etiqueta: seleccione más reciente.

    Captura de pantalla que muestra las opciones de Azure Container Registry.

  8. Seleccione el botón Revisar y crear de la parte inferior de la página.

    Captura de pantalla que muestra el botón Revisar y crear en la parte inferior de la página.

  9. Después de que se ejecute la validación, seleccione el botón Crear en la parte inferior de la página.

  10. Una vez finalizada la implementación, seleccione Ir al recurso.

    Captura de pantalla que muestra el siguiente paso para ir al recurso.

4 - Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web en la dirección URL http://<app-name>.azurewebsites.net.

Captura de pantalla de Windows App Service con mensajes de que los contenedores sin puerto expuesto se ejecutarán en modo de segundo plano.

Tenga en cuenta que el sistema operativo host aparece en el pie de página y confirma que la ejecución se está realizando en un contenedor de Windows.

5 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no cree que vaya a necesitar estos recursos en el futuro, puede eliminarlos mediante la eliminación del grupo de recursos.

En el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos. En la página Grupos de recursos, seleccione myResourceGroup.

En la página myResourceGroup, asegúrese de que los recursos enumerados sean los que desea eliminar.

Seleccione Eliminar grupo de recursos, escriba myResourceGroup en el cuadro de texto para confirmar y, después, seleccione Eliminar.

Pasos siguientes

Ha completado correctamente este inicio rápido.

La aplicación de App Service extrae del registro de contenedor cada vez que se inicia. Si recompila la imagen, solo tiene que insertarla en el registro de contenedor y la aplicación extrae la imagen actualizada cuando se reinicia. Para indicar a la aplicación que extraiga la imagen actualizada inmediatamente, reiníciela.

Azure App Service proporciona las pilas de aplicaciones predefinidas en Windows, como ASP.NET o Node.js, que se ejecutan en IIS. Sin embargo, las pilas de aplicaciones preconfiguradas bloquean el sistema operativo e impiden el acceso de bajo nivel. Los contenedores de Windows personalizados no tienen estas restricciones y permiten a los desarrolladores personalizar completamente los contenedores y proporcionar a las aplicaciones contenedorizadas acceso total a la funcionalidad de Windows.

En este inicio rápido se muestra cómo implementar una aplicación ASP.NET en una imagen de Windows desde Microsoft Artifact Registry en Azure App Service.

Para completar este inicio rápido necesita instalar:

1: Conexión a Azure

Inicie sesión en su cuenta de Azure mediante el comando Connect-AzAccount y siguiendo la indicación:

Connect-AzAccount

2: Creación de un grupo de recursos

Cree un grupo de recursos con el comando New-AzResourceGroup. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus. Para ver todas las ubicaciones admitidas de App Service, ejecute el comando Get-AzLocation.

New-AzResourceGroup -Name myResourceGroup -Location eastus

El comando devolverá Login Succeeded una vez completado.

3: Creación del plan de App Service

Cree un nuevo plan de App Service mediante el comando New-AzAppServicePlan.

En el siguiente ejemplo se crea un plan de App Service denominado myAppServicePlan con el plan de tarifa PremiumV3 (-Tier PremiumV3). El parámetro -HyperV especifica el contenedor de Windows.

New-AzAppServicePlan -Name myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -Tier PremiumV3 -HyperV

4: Creación de la aplicación web

Cree una aplicación mediante el comando New-AzWebApp:

New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • El parámetro Name especifica el nombre de la aplicación web.
  • El parámetro AppServicePlan especifica el nombre del plan de App Service.
  • El parámetro Location especifica la ubicación.
  • El parámetro ResourceGroupName especifica el nombre del grupo de recursos.
  • El parámetro ContainerImageName especifica un nombre de la imagen de contenedor y una etiqueta opcional.

El comando puede tardar unos minutos en completarse.

5: Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web en la dirección URL http://<app-name>.azurewebsites.net.

Captura de pantalla de Windows App Service con mensajes de que los contenedores sin puerto expuesto se ejecutarán en modo de segundo plano.

6: Limpieza de los recursos

Quite el grupo de recursos con el comando Remove-AzResourceGroup:

Remove-AzResourceGroup myResourceGroup

Pasos siguientes

Ha completado correctamente este inicio rápido.

La aplicación de App Service extrae del registro de contenedor cada vez que se inicia. Si recompila la imagen, solo tiene que insertarla en el registro de contenedor y la aplicación extrae la imagen actualizada cuando se reinicia. Para indicar a la aplicación que extraiga la imagen actualizada inmediatamente, reiníciela.

Azure App Service proporciona las pilas de aplicaciones predefinidas en Windows, como ASP.NET o Node.js, que se ejecutan en IIS. Sin embargo, las pilas de aplicaciones preconfiguradas bloquean el sistema operativo e impiden el acceso de bajo nivel. Los contenedores de Windows personalizados no tienen estas restricciones y permiten a los desarrolladores personalizar completamente los contenedores y proporcionar a las aplicaciones contenedorizadas acceso total a la funcionalidad de Windows.

En este inicio rápido se muestra cómo implementar una aplicación ASP.NET en una imagen de Windows desde Microsoft Artifact Registry en Azure App Service.

Para completar este inicio rápido necesita instalar:

1: Conexión a Azure

Inicie sesión en su cuenta de Azure mediante el comando az login y siguiendo la indicación:

az login

2: Creación de un grupo de recursos

Cree un grupo de recursos con el comando az group create. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus. Para ver todas las ubicaciones admitidas de App Service, ejecute el comando az appservice list-locations.

az group create --name myResourceGroup --location eastus

3: Creación del plan de App Service

Cree un plan de App Service en el grupo de recursos con el comando az appservice plan create.

En el siguiente ejemplo se crea un plan de App Service denominado myAppServicePlan con el plan de tarifa P1V3 (--sku P1V3).

az appservice plan create --resource-group myResourceGroup --location eastus --name myAppServicePlan --hyper-v --sku p1v3

Nota

Si se produce el error, "El comportamiento de este comando se ha modificado mediante la siguiente extensión: appservice-kube", quite la extensión appservice-kube.

4: Creación de la aplicación web

Cree una aplicación web de contenedor en el plan de App Service myAppServicePlan con el comando az webapp create. No olvide reemplazar myContainerApp por un nombre de aplicación único (los caracteres válidos son a-z, 0-9 y -).

az webapp create --name myContainerApp --plan myAppServicePlan --location eastus --resource-group myResourceGroup --deployment-container-image-name mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • El parámetro Name especifica el nombre de la aplicación web.
  • El parámetro AppServicePlan especifica el nombre del plan de App Service.
  • El parámetro Location especifica la ubicación.
  • El parámetro ResourceGroupName especifica el nombre del grupo de recursos.
  • El parámetro deployment-container-image-name especifica un nombre de imagen de contenedor y una etiqueta opcional.

5: Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web en la dirección URL http://<app-name>.azurewebsites.net.

Captura de pantalla de Windows App Service con mensajes de que los contenedores sin puerto expuesto se ejecutarán en modo de segundo plano.

6: Limpieza de los recursos

Quite el grupo de recursos con el comando az group delete:

az group delete --no-wait --name <resource_group>

Pasos siguientes

Ha completado correctamente este inicio rápido.

La aplicación de App Service extrae del registro de contenedor cada vez que se inicia. Si recompila la imagen, solo tiene que insertarla en el registro de contenedor y la aplicación extrae la imagen actualizada cuando se reinicia. Para indicar a la aplicación que extraiga la imagen actualizada inmediatamente, reiníciela.