DEV Community

Cover image for Cómo subir imágenes de Docker a Azure Container Registry
Jordi Ayala
Jordi Ayala

Posted on • Originally published at asjordi.dev

Cómo subir imágenes de Docker a Azure Container Registry

En el mundo del desarrollo, los contenedores se han convertido en una herramienta fundamental para empacar y distribuir aplicaciones, por lo que tener un registro de contenedores es esencial para almacenar y administrar imágenes de Docker, aunque en algunos casos, puede que con solo subir tu imagen a Docker Hub sea suficiente, en otros casos, al tratarse de imágenes privadas, es necesario contar con un registro privado, como Azure Container Registry.

Un registro de contenedores es como un repositorio o biblioteca especializada que permite almacenar y distribuir imágenes de contenedores, teniendo como componentes principales los siguientes elementos:

  • Almacenamiento: Guardar imágenes y sus diferentes versiones (tags).
  • API: Permite subir y descargar imágenes.
  • Control de acceso: Gestiona quién puede acceder a las imágenes.

Es similar a un repositorio de código como GitHub, pero en lugar de almacenar código fuente, almacena imágenes de contenedores. Existen varios servicios de registro de contenedores, como Docker Hub, Google Container Registry, Amazon Elastic Container Registry y Azure Container Registry.

Azure Container Registry

Azure Container Registry es un servicio de registro privado para compilar, almacenar y proporcionar imágenes de contenedores. Puedes usar Azure Container Registry para almacenar imágenes de Docker de forma segura y distribuirlas a los equipos de desarrollo, los sistemas de CI/CD y los entornos de producción.

Durante este tutorial, veremos cómo crear una instancia de Azure Container Registry desde el portal de Azure y cómo subir una imagen de Docker.

Prerrequisitos

Es necesario tener instalado lo siguiente:

Una vez instalados se pueden ejecutar los siguientes comandos para verificar que todo esté correctamente instalado:

az --version
docker --version
Enter fullscreen mode Exit fullscreen mode

Crear un Azure Container Registry

La creación de la instancia de Azure Container Registry se puede realizar desde el portal de Azure o mediante la CLI de Azure. En este caso, lo haremos desde el Azure Portal para lo cual se debe iniciar sesión.

Seleccionar Crear un recurso > Contenedores > Registro de contenedores.

Crear un recurso

En la pestaña Aspectos básicos llenar los siguientes campos:

  • Seleccionar o crear un grupo de recursos.
  • Escribir un nombre único para el registro, considerar que este nombre se usará para acceder al registro.
  • Seleccionar la ubicación del registro.
  • Seleccionar la SKU, en este caso, se seleccionará Standard.

Mantener los valores predeterminados para los demás apartados y seleccionar Revisar y crear. Para este caso se crea un registro básico, en el apartado de SKU se puede seleccionar Premium para obtener características adicionales, como la conexión mediante un punto de conexión privado.

Aspectos básicos

Una vez que se haya creado el registro, seleccionar Ir al recurso.

Ir al recurso

En este punto, es necesario copiar el nombre del registro (aparece en la parte superior izquierda) y el nombre del servidor de inicio de sesión (termina en azurecr.io), ya que se necesitarán en los siguientes pasos.

Iniciar sesión en el registro localmente

En este punto es necesario que ya se haya iniciado sesión en Azure desde la CLI de Azure, si no es así, se puede hacer con el siguiente comando:

az login
Enter fullscreen mode Exit fullscreen mode

Para iniciar sesión en el registro de contenedores, se debe ejecutar el siguiente comando:

az acr login --name <nombre_registro>
Enter fullscreen mode Exit fullscreen mode

Donde <nombre_registro> es el nombre del registro que se copió en el paso anterior. Por ejemplo:

az acr login --name asjordi
Enter fullscreen mode Exit fullscreen mode

Si todo está correcto, se mostrará el mensaje Login Succeeded.

Subir una imagen de Docker

En este paso utilizaremos como ejemplo la imagen hello-world de Docker Hub, pero se puede utilizar cualquier imagen.

Para poder subir una imagen al registro de contenedores, esta se debe etiquetar con el nombre completo del servidor de inicio de sesión del registro (copiado en el paso anterior) que tiene el formato <nombre_registro>.azurecr.io, por ejemplo asjordi.azurecr.io. El comando para etiquetar la imagen es el siguiente:

docker tag <nombre_imagen> <nombre_registro>.azurecr.io/<nombre_imagen>:tag
Enter fullscreen mode Exit fullscreen mode

Usando nuestra imagen de ejemplo:

docker tag hello-world asjordi.azurecr.io/hello-world:1.0.0
Enter fullscreen mode Exit fullscreen mode

Si ejecutamos docker image ls podríamos ver la imagen etiquetada con el nombre asjordi.azurecr.io/hello-world:1.0.0 (o el nombre que hayamos elegido).

Finalmente, para subir la imagen al registro de contenedores se usa el comando docker push seguido del nombre de la imagen etiquetada anteriormente:

docker push asjordi.azurecr.io/hello-world:1.0.0
Enter fullscreen mode Exit fullscreen mode

Este paso puede tardar unos minutos, dependiendo del tamaño de la imagen y la velocidad de la conexión a Internet.

Listar imágenes en el registro

Para mostrar las imágenes en el registro desde el Portal de Azure, ir a la sección de Configuración > Repositorios y se mostrará la imagen subida.

Repositorios

Al seleccionar la imagen se pueden ver los detalles, como las etiquetas y la fecha de la última actualización.

Detalles

Descargar una imagen del registro

Para descargar una imagen del registro de contenedores, se debe ejecutar el comando docker pull seguido del nombre de la imagen:

docker pull asjordi.azurecr.io/hello-world:1.0.0
Enter fullscreen mode Exit fullscreen mode

También podemos obtener esta información si hacemos clic sobre la imagen y el tag específico en el portal de Azure.

Detalles imagen

Conclusiones

Esta es la manera en que podemos crear un registro de contenedores privados usando Azure Container Registry y subir una imagen de Docker desde nuestra máquina local. Desde este punto podemos integrar el registro de contenedores con otros servicios de Azure, por ejemplo, si nuestra imagen almacena una aplicación web, podemos desplegarla en Azure App Service. No olvides eliminar el grupo de recursos o los recursos que ya no necesites para evitar cargos adicionales, en este caso Azure Container Registry.

Top comments (1)

Collapse
 
marksantiago02 profile image
Mark Santiago

Good article.
Thank you