Självstudie: Skapa ett Azure-containerregister och push-pusha en containeravbildning

Det här är del två i en serie självstudier med tre delar. I del ett av självstudiekursen skapades en Docker-containeravbildning för ett Node.js-webbprogram. I den här självstudien push-överför du avbildningen till Azure Container Registry. Om du ännu inte har skapat containeravbildningen så gå tillbaka till Självstudie 1 – skapa containeravbildning.

Azure Container Registry är ditt privata Docker-register i Azure. I den här självstudien, som är del två i serien, gör du följande:

  • Skapa en Azure Container Registry instans med Azure CLI
  • Tagga en containeravbildning för Azure-containerregistret
  • överföra avbildningen till registret.

I nästa artikel, som är den sista i serien, distribuerar du behållaren från ditt privata register till Azure Container Instances.

Innan du börjar

Du måste uppfylla följande krav för att kunna slutföra den här självstudiekursen:

Azure CLI: Du måste ha Azure CLI version 2.0.29 eller senare installerat på den lokala datorn. Kör az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa informationen i Installera Azure CLI.

Docker: Den här självstudiekursen förutsätter grundläggande kunskaper om grundläggande Docker-begrepp som containrar, containeravbildningar och grundläggande docker-kommandon. En introduktion till grunderna för Docker och containrar finns i Docker-översikt.

Docker: du måste ha Docker installerat lokalt för att kunna slutföra den här självstudien. Docker innehåller paket som konfigurerar Docker-miljön på macOS, Windows och Linux.

Viktigt

Eftersom Azure Cloud Shell inte innehåller Docker-daemon måste du installera både Azure CLI och Docker-motorn på din lokala dator för att kunna fullfölja den här självstudiekursen. Du kan använda Azure Cloud Shell för den här självstudiekursen.

Skapa Azure Container Registry

Innan du skapar containerregistret måste du ha en resursgrupp att distribuera den till. En resursgrupp är en logisk samling där alla Azure-resurser distribueras och hanteras.

Skapa en resursgrupp med kommandot az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus:

az group create --name myResourceGroup --location eastus

När du har skapat resursgruppen skapar du ett Azure-containerregister med kommandot az acr create. Namnet på containerregistret måste vara unikt i Azure och innehålla 5–50 alfanumeriska tecken. Ersätt <acrName> med ett unikt namn för ditt register:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

Här är partiella utdata för ett nytt Azure-containerregister med namnet mycontainerregistry082:

{
  "creationDate": "2020-07-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

I resten av den här självstudien använder vi <acrName> som platshållare för det containerregisternamn du väljer i det här steget.

Logga in till containerregistret

Du måste logga in på din Azure Container Registry-instans innan du push-överför avbildningar till den. Använd kommandot az acr login till att slutföra åtgärden. Du måste ange det unika namn du valde för containerregistret när du skapade det.

az acr login --name <acrName>

Exempel:

az acr login --name mycontainerregistry082

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

Login Succeeded

Tagga containeravbildningen

Om du vill vidarebefordra en behållaravbildning till ett privat register som Azure Container Registry, måste du först tagga avbildningen med det fullständiga namnet på registrets inloggningsserver.

Hämta först det fullständiga inloggningsservernamnet för ditt Azure-containerregister. Kör följande az acr show-kommando och ersätt <acrName> med namnet på det register som du just har skapat:

az acr show --name <acrName> --query loginServer --output table

Om registret t.ex. heter mycontainerregistry082:

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Visa nu listan över dina lokala avbildningar med kommandot docker images:

docker images

Du bör se den aci-tutorial-app-avbildning som du skapade i den föregående självstudiekursen tillsammans med övriga bilder som finns på datorn:

$ docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Tagga avbildningen aci-tutorial-app med inloggningsservern för containerregistret. Ange även avbildningens versionsnummer genom att lägga till taggen :v1 i slutet av avbildningsnamnet. Ersätt <acrLoginServer> med resultatet av kommandot az acr show som du körde tidigare.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Verifiera taggningen genom att köra docker images igen:

$ docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Push-överför avbildningen till Azure Container Registry

Nu när du har taggat avbildningen aci-tutorial-app med det fullständiga inloggningsservernamnet för ditt privata register kan du skicka avbildningen till registret med kommandot docker push. Ersätt <acrLoginServer> med det fullständiga namnet på inloggningsservern som du erhöll i det tidigare steget.

docker push <acrLoginServer>/aci-tutorial-app:v1

push-åtgärden kan ta från några sekunder till några minuter beroende på din internetanslutning och utdata bör likna följande:

$ docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Lista avbildningar i Azure Container Registry

Verifiera att den avbildning som du just har push-överfört verkligen finns i ditt Azure-containerregister genom att avbildningarna i registret med kommandot az acr repository list. Ersätt <acrName> med namnet på ditt containerregister.

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

Ett exempel:

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Om du vill se taggarna för en viss avbildning använder du kommandot az acr repository show-tags.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Du bör se utdata som liknar följande:

Result
--------
v1

Nästa steg

I den här självstudien förberedde du ett Azure Container Registry för användning med Azure Container Instances och push-överförde en behållaravbildning till registret. Följande steg har slutförts:

  • Skapat en Azure Container Registry-instans med Azure CLI
  • tagga en behållaravbildning för Azure Container Registry
  • ladda upp en avbildning till Azure Container Registry.

Gå vidare till nästa självstudiekurs om du vill lära dig hur man distribuerar behållaren till Azure med Azure Container Instances: