Inicio rápido: Creación de un registro de contenedor privado con la CLI de Azure

Azure Container Registry es un servicio de registro privado para compilar, almacenar y proporcionar imágenes de contenedor y artefactos relacionados. En este inicio rápido, creará una instancia de Azure Container Registry con la CLI de Azure. A continuación, utilice los comandos de Docker para insertar una imagen de contenedor en el registro y, finalmente, extraiga y ejecute la imagen desde el registro.

En este inicio rápido es preciso que ejecute la CLI de Azure (se recomienda la versión 2.0.55 u otra posterior). Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

También debe tener instalado Docker localmente. Docker proporciona paquetes que permiten configurar Docker fácilmente en cualquier sistema macOS, Windows o Linux.

Dado que Azure Cloud Shell no incluye todos los componentes necesarios de Docker (como por ejemplo el demonio dockerd), no se puede usar Cloud Shell en este tutorial de inicio rápido.

Crear un grupo de recursos

Para crear un grupo de recursos, use 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.

az group create --name myResourceGroup --location eastus

Creación de un Registro de contenedor

En este inicio rápido se crea un registro Básico, que es una opción rentable para los desarrolladores que aprenden sobre Azure Container Registry. Para más información sobre los niveles de servicio disponibles, consulte SKU de Azure Container Registry.

Creación de una instancia de ACR mediante el comando az acr create. El nombre del registro debe ser único dentro de Azure y contener entre 5 y 50 caracteres alfanuméricos. En el ejemplo siguiente, se usa el nombre mycontainerregistry. Actualice este valor a uno único.

az acr create --resource-group myResourceGroup \
  --name mycontainerregistry --sku Basic

Cuando se crea el registro, el resultado es similar al siguiente:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry",
  "location": "eastus",
  "loginServer": "mycontainerregistry.azurecr.io",
  "name": "mycontainerregistry",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Tome nota de loginServer en la salida, que es el nombre de registro completo (todo en minúsculas). En el resto de este inicio rápido, <registry-name> es el marcador de posición del nombre del registro de contenedor y <login-server> es el marcador de posición del nombre del servidor de inicio de sesión del registro.

Sugerencia

En este inicio rápido se crea un registro Básico, que es una opción rentable para los desarrolladores que aprenden sobre Azure Container Registry. Elija otros niveles para aumentar el rendimiento de almacenamiento e imagen, y funcionalidades como la conexión mediante un punto de conexión privado. Para más información sobre los niveles de servicio disponibles (SKU), consulte SKU de Azure Container Registry.

Iniciar sesión en el registro

Antes de insertar y extraer imágenes de contenedor, debe iniciar sesión en el registro. Para ello, utilice el comando az acr login. Especifique solo el nombre del recurso de registro al iniciar sesión con la CLI de Azure. No use el nombre completo del servidor de inicio de sesión.

az acr login --name <registry-name>

Ejemplo:

az acr login --name mycontainerregistry

El comando devolverá un mensaje Login Succeeded una vez completado.

Insertar la imagen en el registro

Para insertar una imagen en Azure Container Registry, primero debe tener una imagen. Si aún no tiene ninguna imagen de contenedor local, ejecute el siguiente comando docker pull para extraer una imagen pública existente. Para este ejemplo, extraiga la imagen hello-world desde Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Para poder insertar una imagen en el registro, debe etiquetarla con el nombre completo del servidor de inicio de sesión del registro. El nombre del servidor de inicio de sesión tiene el formato <nombre-de-registro>.azurecr.io (debe estar todo en minúscula); por ejemplo, mycontainerregistry.azurecr.io.

Etiquete la imagen mediante el comando docker tag. Reemplace <login-server> por el nombre del servidor de inicio de sesión de la instancia de ACR.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Ejemplo:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

Por último, use el comando docker push para insertar la imagen en la instancia del registro. Reemplace <login-server> por el nombre del servidor de inicio de sesión de la instancia del registro. Este ejemplo crea el repositorio hello-world, que contiene la imagen hello-world:v1.

docker push <login-server>/hello-world:v1

Después de insertar la imagen en el registro de contenedor, quite la imagen hello-world:v1 de su entorno de Docker local. (Tenga en cuenta que el comando docker rmi no quita la imagen del repositorio hello-world del registro de contenedor de Azure).

docker rmi <login-server>/hello-world:v1

Lista de imágenes de contenedor

En el ejemplo siguiente se enumeran los repositorios del registro:

az acr repository list --name <registry-name> --output table

Salida:

Result
----------------
hello-world

En el ejemplo siguiente se muestran las etiquetas del repositorio hello-world.

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Salida:

Result
--------
v1

Ejecución de la imagen del registro

Ahora, puede extraer y ejecutar la imagen de contenedor hello-world:v1 desde el registro de contenedor mediante docker run:

docker run <login-server>/hello-world:v1  

Salida de ejemplo:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

Limpieza de recursos

Cuando ya no lo necesite, puede usar el comando az group delete para quitar el grupo de recursos, el registro de contenedor y las imágenes de contenedor almacenadas allí.

az group delete --name myResourceGroup

Pasos siguientes

En este inicio rápido, ha creado una instancia de Azure Container Registry con la CLI de Azure, ha insertado una imagen de contenedor en el registro y ha extraído y ejecutado la imagen del registro. Siga los tutoriales de Azure Container Registry para información más detallada de ACR.