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

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 Azure PowerShell. 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.

Prerrequisitos

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Este inicio rápido requiere el módulo Azure PowerShell. Ejecute Get-Module -ListAvailable Az para determinar la versión instalada. Si necesita instalarla o actualizarla, consulte el artículo sobre cómo instalar el módulo de Azure PowerShell.

También debe tener instalado Docker localmente. Docker ofrece paquetes para los sistemas macOS, Windows y 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.

Inicio de sesión en Azure

Inicie sesión en la suscripción de Azure con el comando Connect-AzAccount y siga las instrucciones de la pantalla.

Connect-AzAccount

Creación de un grupo de recursos

Una vez se haya autenticado con Azure, debe crear un grupo de recursos con New-AzResourceGroup. Un grupo de recursos es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Crear un registro de contenedor

A continuación, cree un registro de contenedor en el nuevo grupo de recursos mediante el comando New-AzContainerRegistry.

El nombre del registro debe ser único dentro de Azure y contener entre 5 y 50 caracteres alfanuméricos. En el ejemplo siguiente se crea un registro denominado "mycontainerregistry007". Reemplace mycontainerregistry en el comando siguiente y, a continuación, ejecútelo para crear el registro:

$registry = New-AzContainerRegistry -ResourceGroupName "myResourceGroup" -Name "mycontainerregistry" -EnableAdminUser -Sku Basic

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 del contenedor, debe iniciar sesión en el registro con el cmdlet Connect-AzContainerRegistry. En el ejemplo siguiente se usan las mismas credenciales con las que inició sesión al autenticarse en Azure con el cmdlet Connect-AzAccount.

Nota

En el ejemplo siguiente, el valor de $registry.Name es el nombre del recurso, no el nombre completo del registro.

Connect-AzContainerRegistry -Name $registry.Name

El comando devolverá 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

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 haya terminado de trabajar con los recursos que creó en este inicio rápido, use el comando Remove-AzResourceGroup para quitar el grupo de recursos, el registro de contenedor y las imágenes de contenedor almacenadas allí:

Remove-AzResourceGroup -Name myResourceGroup

Pasos siguientes

En este inicio rápido, ha creado una instancia de Azure Container Registry con Azure PowerShell, ha insertado una imagen de contenedor 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.