Inserción de la primera imagen en un registro de contenedor privado de Docker mediante la CLI de DockerPush your first image to a private Docker container registry using the Docker CLI

Un registro de contenedor de Azure almacena y administra imágenes privadas de contenedor de Docker, de una forma similar a la que Docker Hub almacena imágenes públicas.An Azure container registry stores and manages private Docker container images, similar to the way Docker Hub stores public Docker images. Puede usar la interfaz de la línea de comandos de Docker (CLI de Docker) para, entre otras, realizar las siguientes operaciones en el registro de contenedor: iniciar sesión, insertar, extraer.You can use the Docker command-line interface (Docker CLI) for login, push, pull, and other operations on your container registry.

En los pasos siguientes, se descarga una imagen de Nginx oficial desde el registro público de Docker Hub, se le asigna una etiqueta para el registro de contenedor de Azure privado, se le inserta en el registro y luego se extrae del registro.In the following steps, you download an official Nginx image from the public Docker Hub registry, tag it for your private Azure container registry, push it to your registry, and then pull it from the registry.

Requisitos previosPrerequisites

  • Registro de contenedor de Azure: cree un registro de contenedor en la suscripción de Azure.Azure container registry - Create a container registry in your Azure subscription. Por ejemplo, use Azure Portal o la CLI de Azure.For example, use the Azure portal or the Azure CLI.
  • CLI de Docker: también debe tener instalado Docker localmente.Docker CLI - You must also have Docker installed locally. Docker proporciona paquetes que permiten configurar Docker fácilmente en cualquier sistema macOS, Windows o Linux.Docker provides packages that easily configure Docker on any macOS, Windows, or Linux system.

Inicio de sesión en un registroLog in to a registry

Hay varias maneras de autenticar en el registro de contenedor privado.There are several ways to authenticate to your private container registry. Es el método recomendado cuando se trabaja en una línea de comandos con el comando de la CLI de Azure az acr login.The recommended method when working in a command line is with the Azure CLI command az acr login. Por ejemplo, para iniciar sesión en un registro denominado myregistry:For example, to log in to a registry named myregistry:

az acr login --name myregistry

También puede iniciar sesión con docker login.You can also log in with docker login. Por ejemplo, puede que haya asignado una entidad de servicio al registro para ver un escenario de automatización.For example, you might have assigned a service principal to your registry for an automation scenario. Cuando ejecute el siguiente comando, proporcione de forma interactiva el identificador de aplicación (nombre de usuario) y la contraseña de la entidad de servicio cuando se le solicite.When you run the following command, interactively provide the service principal appID (username) and password when prompted. Para consultar procedimientos recomendados para administrar credenciales de inicio de sesión, vea la referencia del comando docker login:For best practices to manage login credentials, see the docker login command reference:

docker login myregistry.azurecr.io

Ambos comandos devuelven Login Succeeded una vez completados.Both commands return Login Succeeded once completed.

Sugerencia

Especifique siempre el nombre completo del registro (en minúsculas) cuando se usa docker login y al etiquetar imágenes para insertar en el registro.Always specify the fully qualified registry name (all lowercase) when you use docker login and when you tag images for pushing to your registry. En los ejemplos de este artículo, el nombre completo es myregistry.azurecr.io.In the examples in this article, the fully qualified name is myregistry.azurecr.io.

Extracción de la imagen de Nginx oficialPull the official Nginx image

En primer lugar, extraiga la imagen pública de Nginx al equipo local.First, pull the public Nginx image to your local computer.

docker pull nginx

Ejecute el contenedor localmenteRun the container locally

Ejecute el siguiente comando docker run para iniciar una instancia local del contenedor de Nginx de forma interactiva (-it) en el puerto 8080.Execute following docker run command to start a local instance of the Nginx container interactively (-it) on port 8080. El argumento --rm especifica que el contenedor debe quitarse cuando lo detenga.The --rm argument specifies that the container should be removed when you stop it.

docker run -it --rm -p 8080:80 nginx

Vaya a http://localhost:8080 para ver la página web predeterminada que suministra Nginx en el contenedor en ejecución.Browse to http://localhost:8080 to view the default web page served by Nginx in the running container. Debería ver una página similar a la siguiente:You should see a page similar to the following:

Nginx en un equipo local

Dado que inició el contenedor de forma interactiva con -it, puede ver la salida del servidor Nginx en la línea de comandos después de navegar a él en el explorador.Because you started the container interactively with -it, you can see the Nginx server's output on the command line after navigating to it in your browser.

Para detener y quitar el contenedor, presione Control+C.To stop and remove the container, press Control+C.

Creación de un alias de la imagenCreate an alias of the image

Utilice docker tag para crear un alias de la imagen, con la ruta de acceso completa al registro.Use docker tag to create an alias of the image with the fully qualified path to your registry. Este ejemplo especifica el espacio de nombres samples para evitar el desorden en la raíz del registro.This example specifies the samples namespace to avoid clutter in the root of the registry.

docker tag nginx myregistry.azurecr.io/samples/nginx

Para más información sobre cómo etiquetar con espacios de nombres, vea la sección Espacios de nombres del repositorio de Procedimientos recomendados para Azure Container Registry.For more information about tagging with namespaces, see the Repository namespaces section of Best practices for Azure Container Registry.

Inserción de la imagen en el registroPush the image to your registry

Ahora que ha etiquetado la imagen con la ruta de acceso completa para el registro privado, puede insertarla en el registro con docker push:Now that you've tagged the image with the fully qualified path to your private registry, you can push it to the registry with docker push:

docker push myregistry.azurecr.io/samples/nginx

Extracción de la imagen del registroPull the image from your registry

Use el comando docker pull para extraer la imagen del registro:Use the docker pull command to pull the image from your registry:

docker pull myregistry.azurecr.io/samples/nginx

Inicie el contenedor de NginxStart the Nginx container

Use el comando docker run para ejecutar la imagen que ha extraído del registro:Use the docker run command to run the image you've pulled from your registry:

docker run -it --rm -p 8080:80 myregistry.azurecr.io/samples/nginx

Vaya a http://localhost:8080 para ver el contenedor en ejecución.Browse to http://localhost:8080 to view the running container.

Para detener y quitar el contenedor, presione Control+C.To stop and remove the container, press Control+C.

Retirada de la imagen (opcional)Remove the image (optional)

Si ya no necesita la imagen Nginx, puede eliminarla localmente con el comando docker rmi.If you no longer need the Nginx image, you can delete it locally with the docker rmi command.

docker rmi myregistry.azurecr.io/samples/nginx

Para quitar imágenes del registro de contenedor de Azure, puede usar el comando de la CLI de Azure az acr repository delete.To remove images from your Azure container registry, you can use the Azure CLI command az acr repository delete. Por ejemplo, el siguiente comando elimina el manifiesto al que se hace referencia mediante la etiqueta samples/nginx:latest, todos los datos de la capa únicos y todas las demás etiquetas que hacen referencia al manifiesto.For example, the following command deletes the manifest referenced by the samples/nginx:latest tag, any unique layer data, and all other tags referencing the manifest.

az acr repository delete --name myregistry --image samples/nginx:latest

Pasos siguientesNext steps

¡Ahora que conoce los fundamentos, ya está listo para empezar a usar el registro!Now that you know the basics, you're ready to start using your registry! Por ejemplo, implemente imágenes de contenedor del Registro en:For example, deploy container images from your registry to:

Opcionalmente, instale la extensión de Docker para Visual Studio Code y la extensión de la cuenta de Azure para trabajar con los registros de contenedor de Azure.Optionally install the Docker Extension for Visual Studio Code and the Azure Account extension to work with your Azure container registries. Extraiga e inserte imágenes en un registro de contenedor de Azure o ejecute ACR Tasks y, todo ello, en Visual Studio Code.Pull and push images to an Azure container registry, or run ACR Tasks, all within Visual Studio Code.