dev-resources.site
for different kinds of informations.
Desplegar un contenedor de Docker desde Azure Container Registry en una WebApp
Generalmente, podr铆amos pensar que para desplegar un contenedor de Docker con una aplicaci贸n web o API necesitamos una m谩quina virtual o alg煤n servicio m谩s completo. Sin embargo, en Azure lo podemos realizar utilizando un App Service, que es un servicio que permite ejecutar contenedores de Linux personalizados, tambi茅n conocidos como Webapp for containers. De esta manera podemos desplegar contenedores de varios registros, como Docker Hub o Azure Container Registry. En este post, veremos c贸mo desplegar un contenedor de Docker desde Azure Container Registry en una WebApp.
Configurar el registro de contenedores
Para comenzar, necesitamos tener un registro de contenedores en Azure con la imagen que queremos desplegar. En caso de que a煤n no tengas un registro de contenedores, puedes crear uno siguiendo este tutorial donde se explica a detalle el proceso de creaci贸n y subida de im谩genes.
En este caso utilizar茅 una imagen propia de una API b谩sica de Node.js, puedes consultar el c贸digo fuente en este repositorio. Una vez que tengamos el registro de contenedores y la imagen a utilizar, podemos continuar con la creaci贸n de la WebApp.
Habilitar cuenta de administrador en el registro de contenedores
Para algunos servicios de Azure es necesario que la cuenta de administrador del registro de contenedores se encuentre habilitada, por defecto esta opci贸n se encuentra deshabilitada. En este caso, dado que vamos a desplegar un contenedor desde un registro en una Azure Web App for Containers es necesario habilitar esta opci贸n. Para ello, debemos iniciar sesi贸n desde la CLI de Azure con el siguiente comando:
az login
Ahora debemos iniciar sesi贸n en el registro de contenedores:
az acr login --name <nombre_registro>
# Ejemplo
az acr login --name asjordi
Una vez que hayamos iniciado sesi贸n en el registro de contenedores, ejecutamos el siguiente comando para habilitar la cuenta de administrador:
az acr update -n <acrName> --admin-enabled true
# Ejemplo
az acr update --n asjordi --admin-enabled true
Con esto, hemos habilitado la cuenta de administrador en el registro de contenedores y podemos continuar con el proceso de despliegue de la WebApp. Si tienes alguna duda con este proceso, puedes consultar la documentaci贸n oficial.
Crear una WebApp
Iniciar sesi贸n en el portal de Azure y buscar el servicio App Services. Una vez dentro, clic en el bot贸n Crear y seleccionar Web app.
Realizamos los siguientes pasos:
- Seleccionar la suscripci贸n y el grupo de recursos (o creamos uno nuevo).
- Posteriormente en Detalles de Instancia ingresamos un nombre 煤nico para la WebApp (podemos marcar o no la opci贸n de prueba un nombre de host 煤nico por defecto (preview)).
- Seleccionar Contenedor y Linux como sistema operativo.
- Elegir la regi贸n en la que se desplegar谩 la WebApp.
- En el apartado de Plan de servicio, seleccionar un plan de servicio existente o crear uno nuevo, en este caso seleccion茅 el plan de servicio gratuito.
Hacemos clic en el apartado de Contenedor:
- En Fuente de la imagen, seleccionamos Azure Container Registry.
- En Opciones, seleccionamos Contenedor 煤nico.
En Opciones de Azure Container Registry seleccionamos el registro de contenedores previamente creado, la imagen y la etiqueta que queremos desplegar.
Antes de continuar, en caso de que se muestre una advertencia indicando que no tenemos permisos para acceder al registro como se muestra en la siguiente imagen puede que no tengamos habilitada la cuenta de administrador en el registro de contenedores, en ese caso, realizar el paso Habilitar cuenta de administrador en el registro de contenedores
Una vez que tenemos seleccionado el registro de contenedores, la imagen y la etiqueta, y estamos seguros de que no se necesita un comando personalizado para la ejecuci贸n del contenedor (si es necesario se puede agregar en el apartado de Comando de inicio), podemos hacer clic en Revisar y crear para verificar que la configuraci贸n sea correcta y finalmente hacer clic en Crear para desplegar la WebApp.
Al finalizar la implementaci贸n, seleccionar Ir al recurso para acceder al recurso de la WebApp.
Acceder a la WebApp
Una vez dentro del recurso, en la secci贸n de Overview podemos ver en la parte superior derecha la URL de la WebApp o el dominio por defecto, en este caso, la URL es api-words.azurewebsites.net
.
Al acceder a la URL, deber铆amos ver el contenido de nuestra imagen, por ejemplo, una aplicaci贸n web o una API.
Conclusiones
Desplegar un contenedor de Docker en una WebApp en Azure es una tarea sencilla y r谩pida de realizar, adem谩s de que tenemos opciones un poco m谩s avanzadas disponibles dentro del servicio de App Services para trabajar con contenedores. En este caso, vimos c贸mo desplegar un contenedor de Docker desde Azure Container Registry en una WebApp, pero tambi茅n podemos desplegar contenedores de Docker Hub o de otros registros siguiendo el mismo proceso. Si solo realizas esto a manera de prueba, recuerda eliminar el grupo de recursos para evitar cargos adicionales. Cualquier duda puedes consultar la documentaci贸n oficial.
Featured ones: