Snabbstart: Skapa ett privat containerregister med Hjälp av Azure CLI

Azure Container Registry är en privat registertjänst för att skapa, lagra och hantera containeravbildningar och relaterade artefakter. I den här snabbstarten skapar du en Azure-containerregisterinstans med Azure CLI. Använd därefter Docker-kommandon för att skicka en containeravbildning till registret, och hämta och kör avbildningen slutligen från registret.

För den här snabbstarten krävs att du kör Azure CLI (version 2.0.55 eller senare rekommenderas). Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Du måste också ha Docker installerat lokalt. Docker innehåller paket som enkelt kan konfigurera Docker på ett macOS-, Windows- eller Linux-system.

Eftersom Azure Cloud Shell inte innehåller alla nödvändiga Docker-komponenter (dockerd-daemon), kan du inte använda Cloud Shell för denna snabbstart.

Skapa en resursgrupp

Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.

I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus.

az group create --name myResourceGroup --location eastus

Skapa ett containerregister

I den här snabbstarten skapar du ett Basic-register, vilket är ett kostnadsoptimerat alternativ för utvecklare som lär sig om Azure Container Registry. Mer information om tillgängliga tjänstnivåer finns i Tjänstnivåer för containerregister.

Skapa en ACR-instans med hjälp av kommandot az acr create. Registernamnet måste vara unikt i Azure och innehålla 5–50 alfanumeriska gemener. I följande exempel används mycontainerregistry . Uppdatera det här till ett unikt värde.

az acr create --resource-group myResourceGroup \
  --name mycontainerregistry --sku Basic

När registret har skapats ser utdata ut ungefär så här:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry",
  "location": "eastus",
  "loginServer": "mycontainerregistry.azurecr.io",
  "name": "mycontainerregistry",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Anteckna loginServer i utdata, vilket är de fullständigt kvalificerade registernamnet (endast gemener). Under resten av den här snabbstarten <registry-name> är en platshållare för containerregistrets namn och <login-server> är en platshållare för registrets inloggningsservernamn.

Tips

I den här snabbstarten skapar du ett Basic-register, vilket är ett kostnadsoptimerad alternativ för utvecklare som lär sig mer om Azure Container Registry. Välj andra nivåer för ökat dataflöde för lagring och avbildning, samt funktioner som anslutning med hjälp av en privat slutpunkt. Mer information om tillgängliga tjänstnivåer (SKU:er) finns i Tjänstnivåer för containerregister.

Logga in till registret

Innan du skickar och hämtar containeravbildningar måste du logga in i registret. Det gör du med hjälp av kommandot az acr login. Ange endast namnet på registerresursen när du loggar in med Azure CLI. Använd inte det fullständigt kvalificerade inloggningsservernamnet.

az acr login --name <registry-name>

Exempel:

az acr login --name mycontainerregistry

Kommandot returnerar meddelandet Login Succeeded när det har slutförts.

Push-överför avbildningen till registret

Innan du kan push-överföra en avbildning till Azure Container Registry måste du ha en avbildning. Om du ännu inte har några lokala containeravbildningar kör du följande docker pull-kommando för att hämta en befintlig offentlig avbildning. I det här exemplet hämtar du avbildningen hello-world från Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Innan du kan skicka en avbildning till registret måste du tagga den med det fullständigt kvalificerade namnet på registerinloggningsservern. Inloggningsservernamnet är i formatet <registry-name.azurecr.io> (måste vara gemener), till exempel mycontainerregistry.azurecr.io.

Tagga avbildningen med hjälp av kommandot docker tag. Ersätt <login-server> med namnet på inloggningsservern för ACR-instansen.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Exempel:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

Använd slutligen docker push för att push-överföra avbildningen till registerinstansen. Ersätt <login-server> med namnet på inloggningsservern för registerinstansen. Det här exemplet skapar lagringsplatsen hello-world, som innehåller hello-world:v1-avbildningen.

docker push <login-server>/hello-world:v1

När du har push-överfört avbildningen till containerregistret tar du bort hello-world:v1-avbildningen från den lokala Docker-miljön. (Observera att detta docker rmi-kommando inte tar bort avbildningen från hello-world-lagringsplatsen i Azure-containerregistret.)

docker rmi <login-server>/hello-world:v1

Visa lista över containeravbildningar

I följande exempel visas lagringsplatserna i ditt register:

az acr repository list --name <registry-name> --output table

Utdata:

Result
----------------
hello-world

I följande exempel visas taggarna på hello-world-lagringsplatsen .

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Utdata:

Result
--------
v1

Köra en avbildning från registret

Nu kan du hämta och köra hello-world:v1-containeravbildningen från containerregistret med hjälp av docker run:

docker run <login-server>/hello-world:v1  

Exempel på utdata:

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.

[...]

Rensa resurser

När resursgruppen inte längre behövs kan du använda kommandot az group delete till att ta bort resursgruppen, containerregistret och containeravbildningarna som är lagrade där.

az group delete --name myResourceGroup

Nästa steg

I den här snabbstarten skapade du ett Azure Container Registry med Azure CLI, push-överförde en containeravbildning till registret och hämtade och körde avbildningen från registret. Fortsätt till självstudien om Azure Container Registry om du vill titta närmare på ACR.