Tutorial: Creación de una instancia de Azure Container Registry e inserción de una imagen de contenedor
Esta es la segunda parte de un tutorial de tres partes. En la primera parte del tutorial se ha creado una imagen de contenedor de Docker para una aplicación web de Node.js. En este tutorial, la imagen se inserta en Azure Container Registry. Si no ha creado todavía la imagen de contenedor, vuelva a Tutorial 1: Creación de una imagen de contenedor.
Azure Container Registry es su registro de Docker privado en Azure. En este tutorial, segunda parte de la serie, se realizan las siguientes operaciones:
- Creación de una instancia de Azure Container Registry con la CLI de Azure
- Etiquetar una imagen de contenedor para Azure Container Registry
- Cargar la imagen en el registro
En el artículo siguiente, el último tutorial de la serie, va a implementar el contenedor del registro privado en Azure Container Instances.
Antes de empezar
Para completar este tutorial es preciso cumplir los siguientes requisitos:
CLI de Azure: debe tener la versión 2.0.29 de la CLI de Azure, cualquier versión posterior, instalada en el equipo local. Ejecute az --version
para encontrar la versión. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.
Docker: en este tutorial se supone que el usuario tiene un conocimiento básico de los principales conceptos de Docker, como los contenedores, las imágenes de contenedor y los comandos básicos de docker
. Para conocer los principios básicos de Docker y de los contenedores, consulte Introducción a Docker.
Docker: para completar este tutorial, es preciso que el motor de Docker esté instalado localmente. Docker dispone de paquetes que configuran el entorno de Docker en macOS, Windows y Linux.
Importante
Dado que Azure Cloud Shell no incluye el demonio de Docker, para completar este tutorial es preciso instalar tanto la CLI de Azure como el motor de Docker en el equipo local. Azure Cloud Shell no se puede instalar para este tutorial.
Creación de una instancia de Azure Container Registry
Antes de crear el registro de contenedor, necesita 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.
Para crear un grupo de recursos, use el comando az group create. En el siguiente ejemplo, se crea un grupo de recursos denominado myResourceGroup en la región eastus:
az group create --name myResourceGroup --location eastus
Cuando se haya creado el grupo de recursos, cree un registro de contenedor de Azure con el comando az acr create. El nombre del registro de contenedor debe ser único dentro de Azure y contener entre 5 y 50 caracteres alfanuméricos. Reemplace <acrName>
por un nombre único para el registro:
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic
Esta es la salida parcial de una nueva instancia de Azure Container Registry denominada mycontainerregistry082:
{
"creationDate": "2020-07-16T21:54:47.297875+00:00",
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
"location": "eastus",
"loginServer": "mycontainerregistry082.azurecr.io",
"name": "mycontainerregistry082",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
En el resto del tutorial se hace referencia a <acrName>
como marcador de posición del nombre del registro de contenedor que eligió en este paso.
Inicio de sesión en el registro de contenedor
Debe iniciar sesión en la instancia de Azure Container Registry antes de insertar imágenes en ella. Use el comando az acr login para completar la operación. Debe especificar el nombre único que eligió para el registro de contenedor cuando lo creó.
az acr login --name <acrName>
Por ejemplo:
az acr login --name mycontainerregistry082
El comando devuelve Login Succeeded
una vez completado:
Login Succeeded
Etiquetado de la imagen de contenedor
Para insertar una imagen de contenedor en un registro privado como Azure Container Registry, primero debe etiquetar la imagen con el nombre completo del servidor de inicio de sesión del registro.
En primer lugar, obtenga el nombre del servidor de inicio de sesión completo de la instancia de Azure Container Registry. Ejecute el siguiente comando az acr show y reemplace <acrName>
por el nombre del registro que acaba de crear:
az acr show --name <acrName> --query loginServer --output table
Por ejemplo, si el registro se denomina mycontainerregistry082:
az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io
Ahora, muestre la lista de imágenes locales con el comando docker images:
docker images
Junto con cualquier otra imagen que tenga en su máquina, debería ver la imagen aci-tutorial-app que creó en el tutorial anterior:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
Etiquete la imagen aci-tutorial-app con el servidor de inicio de sesión del registro de contenedor. Además, agregue la etiqueta :v1
al final del nombre de imagen para indicar el número de versión de la imagen. Reemplace <acrLoginServer>
por el resultado del comando az acr show que ha ejecutado antes.
docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1
Vuelva a ejecutar docker images
para comprobar la operación de etiquetado:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app v1 5c745774dfa9 7 minutes ago 68.1 MB
Inserción de imágenes en Azure Container Registry
Ahora que ha etiquetado la imagen aci-tutorial-app con el nombre del servidor de inicio de sesión completo del registro privado, puede insertarla en el registro con el comando docker push. Reemplace <acrLoginServer>
por el nombre del servidor de inicio de sesión completo obtenido en el paso anterior.
docker push <acrLoginServer>/aci-tutorial-app:v1
La operación push
debería tardar de unos segundos a unos minutos según la conexión a Internet, y el resultado ser similar al siguiente:
docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576
Lista de imágenes en Azure Container Registry
Para comprobar que la imagen que acaba de insertar está efectivamente en el registro de contenedor de Azure, enumere las imágenes del registro con el comando az acr repository list. Reemplace <acrName>
por el nombre de Registro de contenedor.
az acr repository list --name <acrName> --output table
Por ejemplo:
az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app
Para ver las etiquetas de una imagen concreta, use el comando az acr repository show-tags.
az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table
Debería ver un resultado similar al siguiente:
--------
v1
Pasos siguientes
En este tutorial, ha preparado una instancia de Azure Container Registry para usarla con Azure Container Instances y ha insertado una imagen de contenedor en el registro. Se han completado los siguientes pasos:
- Creación de una instancia de Azure Container Registry con la CLI de Azure
- Etiquetado de una imagen de contenedor para Azure Container Registry
- Carga de una imagen en Azure Container Registry
Vaya al tutorial siguiente para obtener información sobre cómo implementar el contenedor en Azure con Azure Container Instances: