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

Azure Container Registry är en hanterad Docker-behållarregistertjänst som används för att lagra privata Docker-behållaravbildningar. Den här guiden beskriver hur du skapar en Azure Container Registry-instans med hjälp av 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 Container Registry.

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 tecken. I följande exempel används myContainerRegistry007. Uppdatera det här till ett unikt värde.

az acr create --resource-group myResourceGroup \
  --name myContainerRegistry007 --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/myContainerRegistry007",
  "location": "eastus",
  "loginServer": "mycontainerregistry007.azurecr.io",
  "name": "myContainerRegistry007",
  "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). I resten av den här snabbstarten är en platshållare för containerregistrets namn och är en platshållare för <registry-name> <login-server> registrets inloggningsservernamn.

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 registernamnet när du loggar in med Azure CLI. Använd inte inloggningsservernamnet, som innehåller ett domänsuffix som azurecr.io .

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 inte har några lokala behållar avbildningar 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 hello-world avbildningen från Microsoft container Registry.

docker pull mcr.microsoft.com/hello-world

Innan du kan push-överföra en avbildning till registret måste du tagga den med det fullständigt kvalificerade namnet på inloggnings servern för registret. Inloggnings serverns namn har formatet <registry-name> . azurecr.io (måste vara alla 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

Slutligen använder du Docker push för att push-överföra avbildningen till register instansen. Ersätt <login-server> med inloggnings Server namnet för din register instans. 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.