Para este Proyecto ATA, vas a obtener una visión de cómo funciona Docker en Azure. En este tutorial de Docker en Azure, vas a aprender sobre el servicio Azure Container Instance (ACI) de Microsoft.
Azure Container Instance es un clúster de Kubernetes alojado a través de Azure Docker hosting. Te permite implementar cualquier imagen de Docker (Windows y Linux) y ejecutarla como un contenedor. Cada contenedor de Docker de Azure se ejecuta como un contenedor independiente, utilizando su propia CPU y memoria asignadas.
En este proyecto, aprenderás cómo implementar y ejecutar tu primer Instancia de Contenedor de Azure, basado en una muestra de imagen de contenedor ASP.NET de Microsoft en la nube pública de Azure.
Al final de este proyecto, tendrás un sitio web de ASP.NET ejecutándose en un contenedor Docker alojado por el servicio de Instancia de Contenedor de Azure.
Requisitos de Entorno y Conocimientos
Para sacar el máximo provecho de este tutorial de Docker en Azure, deberías tener lo siguiente:
- A local Windows 10 client with Docker Desktop installed.
- A Microsoft Azure account
- Acceso a una cuenta de Azure con permisos para implementar un contenedor en Azure Container Registry
- El CLI de Azure para Windows instalado. Aprenderás desde la línea de comandos.
- A beginner understanding of containers and Docker.
- A registered Docker ID.
Si no te gusta el ejemplo elegido en este tutorial de Azure Docker, siempre puedes usar otra imagen de contenedor en el Docker Hub.
Sin más preámbulos, ¡vamos a construir este Proyecto!
Ejecutando un Contenedor Docker
Para evitar frustraciones más adelante cuando algo no funcione, siempre valida primero que el Motor de Docker esté en funcionamiento. Para hacerlo, abre un símbolo del sistema o una sesión de PowerShell y ejecuta docker info
.
A continuación, puedes ver el tipo de salida que deberías recibir.

Para validar, inicia un contenedor Docker, ejecuta docker run hello-world
. Detrás de escena, el comando docker
realiza algunos pasos:
- Busca un contenedor llamado hello-word localmente en tu computadora con Windows 10.
- Si no lo encuentra, luego accede al repositorio público de Docker Hub para buscar la última versión de un contenedor con el nombre hello-world.
- Cuando se encuentra el contenedor, entonces se descarga desde el repositorio de Docker Hub.
- Una vez descargado, se inicia el contenedor y se ejecutan las instrucciones de inicio proporcionadas dentro de la imagen que está utilizando el contenedor.
A continuación, puedes ver un ejemplo de salida.

Iniciando un Contenedor de ASP.NET de Muestra
Ahora que sabes cómo descargar un contenedor Docker y ejecutarlo, descarga y ejecuta el contenedor con el que trabajarás en este Proyecto. Este contenedor Docker es una imagen de una aplicación web ASP.Net Core.
Para descargar la imagen de este tutorial de Azure Docker, ejecuta el siguiente comando:
Este comando realiza lo siguiente:
- Dado que la imagen Docker no está disponible localmente, Docker descarga un contenedor llamado aspnetapp desde otro registro de contenedores público alojado por Microsoft ubicado en mcr.microsoft.com en el directorio dotnet/core/samples. El registro de contenedores mcr.microsoft.com es similar al Docker Hub público pero es mantenido por Microsoft y solo aloja imágenes de contenedores de Microsoft.
- Ejecuta el contenedor en tu computadora local.
- (-p 8000:80) – Mapea el puerto TCP de escucha 80 en el contenedor al puerto TCP 8000. Esto te permite acceder a la aplicación web en el puerto 8000 localmente.
- (-it) – El contenedor se lanzará de forma interactiva, lo que significa que serás llevado inmediatamente a la consola cuando comience.
- (
—rm
) – Cuando el contenedor se detenga, será eliminado.
A continuación, puedes ver la salida que puedes esperar.

6. Desde tu navegador, conecta con esta aplicación de contenedor en ejecución navegando a http://localhost:8000. Deberías ver la aplicación web de ejemplo de ASP.Net

Creación de una Instancia de Registro de Contenedores de Azure (ACR)
Una vez que hayas descargado el contenedor ASP.NET en tu computadora local, es hora de migrarlo al hospedaje de Docker de Azure con ACI y ejecutar este contenedor en Azure. Para hacer esto, vamos a subir el contenedor de demostración al Registro de Contenedores de Azure (ACR). ACR es un servicio que te permite implementar y ejecutar contenedores Docker directamente dentro de Azure.
- Inicia sesión en el Portal de Azure.
- Haz clic en el ícono de terminal en la parte superior para iniciar Azure Cloud Shell.

Asegúrate de elegir el shell de Bash como se muestra a continuación.

Crea un grupo de recursos de Azure para colocar una instancia de ACR usando el comando az group create
a continuación.

Ahora crea el ACR dentro del grupo de recursos usando el comando az acr create
. A continuación, puedes ver un ejemplo de creación de un ACR con un SKU Básico usando el parámetro admin-enabled
establecido en true
. Esto se establece en true
porque te permite realizar la gestión de recursos más adelante.

–admin-enabled true
Una vez que hayas terminado, ahora deberías tener una instancia de ACR ejecutándose dentro de tu grupo de recursos. ¡El hospedaje de Docker de Azure al rescate!
Conexión a la instancia de ACR localmente
- Ahora necesitas pasar del Azure Cloud Shell a tu computadora local con Windows para finalizar la configuración.
- En tu máquina local, inicia PowerShell o un símbolo del sistema con derechos de administrador. Estoy utilizando PowerShell.
- Autentica en Azure con Azure CLI ejecutando
az login
y sigue las instrucciones para proporcionar tus credenciales.

Una vez autenticado con éxito, deberías ver alguna salida JSON que indique el usuario con el que acabas de autenticar.

4. A continuación, autentica en la instancia de ACR que acabas de crear en Azure Cloud Shell usando el comando az acr login
con el siguiente comando. A continuación, puedes ver que me estoy conectando a una instancia de ACR llamada nopacr1, en el grupo de recursos de Azure NOPRG.
Actualizando la Etiqueta de la Imagen Docker
- Ahora estás listo para enviar tu imagen Docker local a tu instancia de ACR en Azure Docker hosting o ACI. Pero primero debes cumplir con una dependencia de ACR. Todas las imágenes Docker enviadas a la instancia de ACR deben tener el nombre de la instancia de ACR en el nombre de la imagen.

Encuentra el número de identificación de la imagen Docker o el nombre de la imagen usando el comando docker images
.

2. Actualiza la etiqueta de la imagen Docker para la imagen Docker ejecutando el comando docker tag
como se muestra a continuación. Si sigues la convención de nombres, usa el nombre de ACR NOPACR1 y define la etiqueta como nopacr1.azurecr.io. Para la imagen en sí, usa el nombre dotnetsample.

3. Verifica que la etiqueta se haya aplicado usando nuevamente el comando docker images
. Ahora deberías ver que la etiqueta se ha actualizado.
- Subiendo la Imagen Docker a la Instancia de ACR y Verificación

Ahora carga la imagen local en la instancia de ACR usando el comando docker push
como se muestra a continuación, proporcionando la etiqueta del nombre de DNS donde se encuentra la instancia de ACR.

2. Una vez cargada, verifica que la carga en la instancia de ACR se haya realizado correctamente usando el Portal de Azure navegando a Todos los Servicios —> Registros de Contenedores de Azure y seleccionando la instancia de ACR que creaste anteriormente.

3. En el menú de la hoja a la izquierda, en la sección de Servicios, haz clic en Repositorios. La imagen de Docker que acabas de cargar en tu instancia de ACR debería aparecer aquí.

4. Haz clic en la imagen y verás su versión y otra información útil.
Ejecución de la Instancia de Contenedor de Azure (ACI)
- Ahora has creado una instancia de ACR, etiquetado una imagen de contenedor Docker con el nombre de ACR como referencia y cargado la imagen en la instancia de ACR. Ahora es el momento de usar la Instancia de Contenedor de Azure (ACI) para ejecutar la imagen de Docker almacenada en tu instancia de ACR.

Continuando desde el paso anterior, haz clic en los puntos suspensivos junto a último y elige Ejecutar instancia. Esto abrirá la hoja Crear Instancia de Contenedor.
- 2. Completa los campos en el recuadro Crear instancia de contenedor a continuación utilizando la siguiente información:
- Nombre del Contenedor – cualquier nombre que desees usar para este contenedor en ejecución
- Tipo de SO – Linux (esto depende del contenedor fuente. Si estás usando el mismo contenedor en este proyecto, este podría ser Windows)
- Suscripción – tu suscripción de Azure
- Grupo de recursos – cualquier grupo de recursos de Azure existente o nuevo para agregar la instancia del contenedor
Ubicación – basado en el grupo de recursos

Para este tutorial de Docker de Azure con contenedores ASP.NET, puede dejar sin cambios todas las demás configuraciones. En un entorno de producción, dependiendo de lo que esté ejecutando el contenedor, es posible que necesite cambiar estas configuraciones.

3. Presione Aceptar para crear la instancia del contenedor.
4. Una vez que se haya implementado la instancia del contenedor, debería ver una página que se vea como el ejemplo a continuación.

5. Una vez finalizada la implementación, abra el ACI en el portal navegando a Todos los servicios —> Instancias de contenedor. Una vez aquí, busque la Instancia de contenedor de Azure (ACI) que se acaba de crear. Debería ver la instancia mostrada a continuación.

6. Copie la dirección IP en la esquina superior derecha y péguela en un navegador web. Su aplicación web de ejemplo ASP.NET debería cargarse desde su Instancia de contenedor de Azure (ACI) y mostrar una página web como se muestra a continuación.
Si ha terminado con este contenedor, puede utilizar el comando az container delete
para eliminar el contenedor.
Conclusión