¿Cómo desplegar un contenedor Docker en Azure Container Registry?

Blog / ¿Cómo desplegar un contenedor… /
¿Cómo desplegar un contenedor Docker en Azure Container Registry?

Por: Leonardo Narváez.

En: 23 de Octubre de 2024 a las 10:46
Azure Azure Container Registry Azure Portal

Introducción:

En un entorno de desarrollo moderno, la capacidad de empaquetar y desplegar aplicaciones de manera eficiente es fundamental para garantizar la escalabilidad y flexibilidad de los proyectos. Docker se ha consolidado como una de las herramientas más poderosas para la creación y gestión de contenedores, permitiendo a los desarrolladores aislar sus aplicaciones y dependencias en un entorno controlado.

En este tutorial, exploraremos cómo crear una imagen Docker simple y desplegarla utilizando los servicios en la nube de Azure. A través de esta práctica, conocerás el funcionamiento de Azure Container Registry (ACR), una solución gestionada para almacenar y distribuir tus imágenes de contenedor, y aprenderás cómo utilizar Azure Container Instances (ACI) para ejecutar contenedores sin la complejidad de gestionar una infraestructura completa.

Al final del tutorial, habrás dado un paso importante hacia el entendimiento de cómo integrar Docker con Azure, lo que te proporcionará una base sólida para implementar aplicaciones en la nube de forma rápida y eficiente.


Crear una imagen Docker:

Primero crearemos la imagen docker en local, de ejemplo tomaré una página de presentación simple en html.

  • Clonar el repositorio:
git clone https://github.com/leonxrdon/simple_card.git card-presentation
  • Listamos el contenido:
cd card-presentation
ls -l

En este caso solo muestra el contenido de dos archivos que he realizado de ejemplo:

  • Ahora vamos a crear nuestro archivo Dockerfile, el archivo se crea sin ninguna extención.
touch Dockerfile

En este archivo definiremos las instrucciones necesarias para construir nuestra imagen Docker. En este ejemplo, usaremos Nginx como servidor para desplegar una página web sencilla.


  • Abre en un editor de texto el archivo Dockerfile y agrega las siguientes instrucciones:
# Imagen base de nginx
FROM nginx:alpine

# Copia los archivos de mi portfolio al directorio HTML de nginx
COPY . /usr/share/nginx/html
  • Para crear la imagen ejecutamos el siguiente comando en la terminal.
docker build -t card-presentation .
  • Una vez que hayas construido la imagen, puedes verificar todas las imágenes que se han creado en tu entorno Docker. Para ello, ejecuta el siguiente comando en la terminal:
docker images

Se verá algo como esto:

  • Ahora que has creado la imagen, vamos a ejecutarla para comprobar su funcionamiento desde el navegador. Para iniciar el contenedor basado en la imagen que acabas de crear, ejecuta el siguiente comando en la terminal:
docker run -d -p 8080:80 card-presentation

Veras algo como esto:

  • Para ver si esta en funcionamiento, podemos ejecutar el siguiente comando:
docker ps -a

Se mostrará un listado de los contenedores activos.

Si estas usando Docker Desktop en windows, también deberías ver como se ha creado el contenedor y la imagen:

Si entras en el navegador a la dirección: http://localhost:8080 podrás ver tu aplicación web funcionando correctamente:

¡Listo! Ahora tienes tu proyecto funcionando en un contenedor. Como recomendación, es buena práctica guardar tu proyecto en un repositorio de código, como GitHub o una plataforma similar.


Crear una instancia en Azure Container Registry:

Ahora que tienes tu proyecto funcionando localmente, es el momento de llevarlo a la nube y desplegarlo en la plataforma de Azure. Este paso te permitirá acceder a tu aplicación desde cualquier lugar y aprovechar la escalabilidad que ofrece Azure.


Creación de Azure Container Registry

Antes de la creación del registro del contenedor necesitamos un grupo de recursos en donde implementarlo. Un grupo de recursos es una colección lógica en la que se implementan y administran todos los recursos de Azure.

Buscamos dentro del panel Registro de Contenedor, una vez ahí vamos a guardar la siguiente información:

  • Antes de continuar, nos solicitará guardar un grupo de recursos, lo creamos dentro del mismo formulario. En mi caso le pondré el nombre: myResourceGroup

  • Al final la configuración te debe quedar de la siguiente manera:

Una vez que hayas configurado todos los parámetros necesarios para tu contenedor, haz clic en Revisar y crear. En este punto, se mostrará un resumen de todas las configuraciones que has realizado.

  • Aquí podrás verificar:
  • Los recursos asignados (CPU, memoria).
  • Las configuraciones de red.
  • La imagen seleccionada.

Azure te avisará si hay algún conflicto o si todo está correcto. Si todo está en orden, simplemente haz clic en Crear para desplegar tu contenedor.


Después de validar todo, se creara el Registro de Contenedor y se mostrará dentro del panel algo así:

Antes de poder cargar los recursos tenemos que dar permiso de administrador, para eso:

  • Damos clic en Detalles de implementación y accedemos a nuestro registro:

  • Dentro de nuestro Registro, iremos a propiedades y habilitamos Usuario Administrador y guardamos:


Cargar la imagen docker dentro de Azure

Ahora vamos a montar la imagen que hemos creado en local dentro de Azure, para ello en la terminal de nuestro proyecto:

  • Vamos a iniciar sesion con el comando:
az login

Al intentar acceder a Azure, se abrirá una ventana para que inicies sesión con tu cuenta de Azure. Ingresa tus credenciales y haz clic en Iniciar sesión.

Una vez que hayas iniciado sesión correctamente, deberías ver un mensaje de confirmación similar a este:

  • Ahora vamos a loguearnos con el contenedor:

Si sale de forma satisfactoria ahora desde la misma terminal vamos a cargar la imagen a Azure con los siguientes comandos:

  • Para identificar y organizar tu imagen en Azure Container Registry, es importante crear un tag. Este tag te ayudará a gestionar diferentes versiones de tu imagen. La estructura del comando para crear un tag es la siguiente:
docker tag <nombre-de-la-imagen-local> <nombre-del-registro-en-minúsculas>.azurecr.io/<nombre-de-la-imagen>:v1
  • <nombre-de-la-imagen-local>: El nombre de la imagen que has creado en tu entorno local.
  • <nombre-del-registro-en-minúsculas>: El nombre que has asignado a tu registro de Azure Container Registry.
  • <nombre-de-la-imagen>: Un nombre descriptivo para tu imagen.
  • :v1: La etiqueta que indica la versión de la imagen. Puedes modificarla según la versión que desees.

En nuestro caso el comando quedaría de la siguiente forma:

docker tag card-presentation dockercardpresentation.azurecr.io/card-presentation:v1
  • Después de esto vamos hacer el push:
docker push dockercardpresentation.azurecr.io/card-presentation:v1

Si todo sale bien se vera algo como esto, si algo falla asegúrate de que los nombres de la imagen y del registro estén correctamente escritos:




Configurar Azure Container Instances

Ahora volvemos al portal de Azure y vamos a configurar nuestro contenedor:

  • Damos clic en Implementar una imagen:

  • Ahora damos a Iniciar en Instancias de contenedor:

  • Ponemos las configuraciones de la siguiente manera:

Ahora que la imagen card-presentation se ha cargado correctamente en Azure Container Registry, el siguiente paso es proceder con el despliegue del contenedor.

  • Damos clic en Revisar y crear, nos mostrará el resumen y verificaciones de nuestras configuraciones

  • Damos en Crear, esperamos que cargue esto puede tardar varios minutos.

Una vez que el proceso de despliegue haya finalizado, podrás ver la dirección IP pública de tu contenedor en el portal de Azure. Esta IP es fundamental para acceder al servicio Nginx que has creado con Docker.

  • Localiza la dirección IP pública en la página de detalles de tu instancia de contenedor.


  • Abre tu navegador e ingresa la dirección IP pública en la barra de direcciones, junto con el puerto correspondiente:

Conclusión

Esta práctica, aunque sencilla en su ejecución, ha sido clave para fortalecer mis habilidades en la gestión de contenedores con Docker y en el uso de servicios en la nube, específicamente Azure. A lo largo de este proceso, hemos abordado desde la creación de un archivo Docker simple hasta el despliegue y configuración de la imagen en Azure Container Registry y Azure Container Instances.

Más allá del aspecto técnico, este tutorial ofrece una visión clara de cómo las herramientas de Azure facilitan el flujo de trabajo para desarrolladores que buscan soluciones escalables y eficientes en la nube. Además, me ha permitido familiarizarme con la automatización del ciclo de vida de las aplicaciones y la integración con plataformas de nube pública, lo que es fundamental en proyectos de desarrollo moderno.

Implementar contenedores en la nube no solo optimiza el desarrollo y la operación de aplicaciones, sino que también abre un abanico de posibilidades para manejar proyectos de manera más flexible, escalable y con mayor control sobre los entornos de producción.

Espero que este tutorial no solo te ayude a comprender los conceptos esenciales, sino que también te inspire a explorar más sobre el potencial de Docker y Azure en tus propios proyectos.

1.- ¿Cómo desplegar un contenedor Docker en Azure Container Registry?

Compartir:

Ver más

Práctica de Dataframes con PySpark en Databricks: Análisis y Transformació…
6 Tutoriales
Práctica de RDD con PySpark en Databricks: Análisis y Transformación de Da…
25 Tutoriales
Ejercicio de Transformación de Datos en Kaggle: Análisis de Retrasos en Vu…
12 Tutoriales
Guía Completa de Databricks: Instalación, Configuración de Clústeres y Not…
23 Tutoriales

author-como-desplegar-un-contenedor-docker-en-azure-container-registry
Leonardo Narváez

Desarrollador de software apasionado y creativo con experiencia en diversos lenguajes y tecnologías. Especializado en la creación de soluciones innovadoras y eficientes, como aplicaciones web y móviles, sitios web interactivos y soluciones personalizadas.

Artículos