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

Un registro di contenitori di Azure archivia e gestisce le immagini dei contenitori Docker private, 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 di 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 di contenitori di Azure 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 di contenitori di Azure: 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 o l'interfaccia della riga di comando di Azure 2.0.For example, use the Azure portal or the Azure CLI 2.0.
  • Interfaccia della riga di comando di Docker: per configurare il computer locale come host Docker e accedere ai comandi della riga di comando di Docker, installare Docker.Docker CLI - To set up your local computer as a Docker host and access the Docker CLI commands, install Docker.

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. L'esempio seguente passa l'ID e la password di un'entità servizio di Azure Active Directory.The following example passes the ID and password of an Azure Active Directory service principal. 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.

docker login myregistry.azurecr.io -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p myPassword

Entrambi i comandi restituiscono Login Succeeded una volta completati.Both commands return Login Succeeded once completed. Se viene usato il comando docker login, potrebbe venire visualizzato anche un avviso di sicurezza in cui si consiglia l'uso del parametro --password-stdin.If you use docker login, you might also see a security warning recommending the use of the --password-stdin parameter. Sebbene il suo utilizzo non rientri nell'ambito di questo articolo, si raccomanda di seguire questa procedura consigliata.While its use is outside the scope of this article, we recommend following this best practice. Per altre informazioni, vedere la guida comandi di accesso di Docker.For more information, see the docker login command reference.

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 il Registro contenitori di Azure.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 contenitori di Azure, è 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. Ad esempio, il comando seguente elimina il manifesto a cui un tag fa riferimento, i dati livello associati e tutti gli altri tag che fanno riferimento al manifesto.For example, the following command deletes the manifest referenced by a tag, any associated layer data, and all other tags referencing the manifest.

az acr repository delete --name myregistry --repository samples/nginx --tag latest --manifest

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! Ad esempio, distribuire le immagini del contenitore dal registro in un cluster del servizio contenitore di Azure.For example, deploy container images from your registry to an Azure Container Service (AKS) cluster.