Effettuare il push della prima immagine in un registro contenitori Docker privato tramite l'interfaccia della riga di comando di DockerPush your first image to a private Docker container registry using the Docker CLI

Registro Azure Container archivia e gestisce le immagini private dei contenitori Docker, in modo analogo a come Docker Hub archivia le immagini Docker pubbliche.An Azure container registry stores and manages private Docker container images, similar to the way Docker Hub stores public Docker images. È possibile usare l'interfaccia della riga di comando di Docker per eseguire l'accesso, il push, il pull e altre operazioni sul registro contenitori.You can use the Docker command-line interface (Docker CLI) for login, push, pull, and other operations on your container registry.

La procedura seguente esegue il download di un'immagine di Nginx ufficiale dal registro pubblico di Docker Hub, la contrassegna per il Registro Azure Container privato, ne effettua il push nel registro e quindi ne effettua il pull dal 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.

prerequisitiPrerequisites

  • Registro Azure Container: creare un registro di contenitori nella sottoscrizione di Azure.Azure container registry - Create a container registry in your Azure subscription. Ad esempio usare il portale di Azure oppure l'interfaccia della riga di comando di Azure.For example, use the Azure portal or the Azure CLI.
  • Interfaccia della riga di comando di Docker: è anche necessario avere Docker installato localmente.Docker CLI - You must also have Docker installed locally. Docker offre pacchetti che consentono di configurare facilmente Docker in qualsiasi sistema macOS, Windows o Linux.Docker provides packages that easily configure Docker on any macOS, Windows, or Linux system.

Accedere a un registroLog in to a registry

Esistono diversi modi per eseguire l'autenticazione nel registro contenitori privato.There are several ways to authenticate to your private container registry. È il metodo consigliato quando si usa una riga di comando è rappresentato dal comando dell'interfaccia della riga di comando di Azure az acr login.The recommended method when working in a command line is with the Azure CLI command az acr login. Ad esempio, per accedere a un registro denominato myregistry:For example, to log in to a registry named myregistry:

az acr login --name myregistry

È anche possibile eseguire l'accesso con il comando docker login.You can also log in with docker login. Ad esempio, è possibile che sia stata assegnata un'entità servizio al registro per uno scenario di automazione.For example, you might have assigned a service principal to your registry for an automation scenario. Quando si esegue il comando seguente, specificare in modo interattivo l'appID dell'entità servizio (nome utente) e la password quando richiesto.When you run the following command, interactively provide the service principal appID (username) and password when prompted. Per le procedure consigliate relative alla gestione delle credenziali di accesso, vedere le informazioni di riferimento sul comando docker login:For best practices to manage login credentials, see the docker login command reference:

docker login myregistry.azurecr.io

Entrambi i comandi restituiscono Login Succeeded una volta completati.Both commands return Login Succeeded once completed.

Suggerimento

Specificare sempre il nome completo (tutto in maiuscolo) del registro quando si usa docker login e quando le immagini vengono contrassegnate per l'esecuzione del push nel 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. Negli esempi riportati in questo articolo il nome completo è myregistry.azurecr.io.In the examples in this article, the fully qualified name is myregistry.azurecr.io.

Eseguire il pull dell'immagine di Nginx ufficialePull the official Nginx image

Eseguire prima il pull dell'immagine pubblica di Nginx nel computer locale.First, pull the public Nginx image to your local computer.

docker pull nginx

Eseguire il contenitore in localeRun the container locally

Eseguire quindi il comando docker run per avviare l'istanza locale del contenitore Nginx (-it) in modalità interattiva sulla porta 8080.Execute following docker run command to start a local instance of the Nginx container interactively (-it) on port 8080. L'argomento --rm specifica che il contenitore deve essere rimosso quando si arresta.The --rm argument specifies that the container should be removed when you stop it.

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

Passare a http://localhost:8080 per visualizzare la pagina Web predefinita servita da nginx nel contenitore in esecuzione.Browse to http://localhost:8080 to view the default web page served by Nginx in the running container. Verrà visualizzata una pagina simile alla seguente:You should see a page similar to the following:

Nginx sul computer locale

Poiché il contenitore è stato avviato in modalità interattiva con -it, è possibile visualizzare l'output del server Nginx nella riga di comando nel browser in uso.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.

Per arrestare e rimuovere il contenitore, premere Control+C.To stop and remove the container, press Control+C.

Creare un alias dell'immagineCreate an alias of the image

Usare docker tag per creare un alias dell'immagine, con un percorso completo del registro.Use docker tag to create an alias of the image with the fully qualified path to your registry. Questo esempio specifica lo spazio dei nomi samples per evitare confusione nella radice 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

Per altre informazioni sull'assegnazione di tag con spazi dei nomi, vedere la sezione Spazi dei nomi dell'archivio nell'argomento Procedure consigliate per Registro Azure Container.For more information about tagging with namespaces, see the Repository namespaces section of Best practices for Azure Container Registry.

Eseguire il push dell'immagine nel registroPush the image to your registry

Dopo aver contrassegnato l'immagine con il percorso completo del registro privato, è possibile eseguirne il push nel 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

Eseguire il pull dell'immagine dal registroPull the image from your registry

Usare il comando docker pull per eseguire il pull dell'immagine dal registro:Use the docker pull command to pull the image from your registry:

docker pull myregistry.azurecr.io/samples/nginx

Avviare il contenitore NginxStart the Nginx container

Usare il comando docker run per eseguire l'immagine di cui è stato eseguito il pull dal 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

Passare a http://localhost:8080 per visualizzare il contenitore in esecuzione.Browse to http://localhost:8080 to view the running container.

Per arrestare e rimuovere il contenitore, premere Control+C.To stop and remove the container, press Control+C.

Rimuovere l'immagine (facoltativo)Remove the image (optional)

Se l'immagine di Nginx non è più necessaria, è possibile eliminarla in locale con il 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

Per rimuovere le immagini dal Registro Azure Container, è possibile usare il comando dell'interfaccia della riga di comando di Azure az acr repository delete.To remove images from your Azure container registry, you can use the Azure CLI command az acr repository delete. Il comando seguente, ad esempio, elimina il manifesto a cui fa riferimento il tag samples/nginx:latest, tutti i dati di livello univoci e tutti gli altri tag che fanno riferimento al manifesto.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

Passaggi successiviNext steps

Una volta apprese le nozioni di base, si è pronti per iniziare a usare il registro.Now that you know the basics, you're ready to start using your registry! È possibile, ad esempio, distribuire le immagini del contenitore dal registro nella posizione seguente:For example, deploy container images from your registry to:

Installare eventualmente l'estensione Docker per Visual Studio Code e l'estensione Account Azure per l'uso dei registri contenitori di Azure.Optionally install the Docker Extension for Visual Studio Code and the Azure Account extension to work with your Azure container registries. Eseguire il pull e il push delle immagini in un registro contenitori di Azure o eseguire Attività del Registro Azure Container, il tutto all'interno di Visual Studio Code.Pull and push images to an Azure container registry, or run ACR Tasks, all within Visual Studio Code.