Självstudie – Skapa en Azure Container Registry (ACR) och skapa avbildningar

Azure Container Registry (ACR) är ett privat register för containeravbildningar. Med ett privat containerregister kan du på ett säkert sätt skapa och distribuera dina program och anpassad kod.

I den här handledningen distribuerar du ett ACR-exemplar och pushar en containerbild till det. Du lär dig att:

  • Skapa en ACR-instans.
  • Använd ACR Tasks för att skapa och skicka containeravbildningar till ACR.
  • Visa avbildningar i registret.

Innan du börjar

I den föregående självstudien klonade du källkodsförrådet och använde Docker för att skapa en containeravbildning för ett enkelt Azure Store Front-program. Om du inte skapade Azure Store Front-appavbildningen går du tillbaka till Tutorial 1 – Förbered ett program för AKS.

Den här självstudien skapar fakturerbara Azure resurser, inklusive en resursgrupp och en Azure Container Registry. För att slutföra de här stegen behöver du behörighet att skapa resursgrupper och Azure Container Registry resurser i din prenumeration, till exempel Deltagare eller Ägare.

Den här handledningen kräver Azure CLI version 2.0.53 eller senare. Kör kommando az --version för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Skapa en Azure Container Registry

Innan du skapar en ACR-instans behöver du en resursgrupp. En Azure resursgrupp är en logisk container där du distribuerar och hanterar Azure resurser.

  1. Skapa variabler för resursgruppens namn, plats och registernamn. Du kan använda dessa värden eller skapa egna. Registernamnvariabelns värde som lagras i ACRNAME måste vara unikt inom Azure och bestå av 5–50 alfanumeriska gemener.

    export RESOURCE_GROUP=myResourceGroup
    export LOCATION=westus2
    export RANDOM_STRING=$(printf '%05d%05d' "$RANDOM" "$RANDOM")
    export ACRNAME="myregistry${RANDOM_STRING}"
    

    Registernamnvariabelns värde som lagras i ACRNAME måste vara unikt inom Azure och bestå av 5–50 alfanumeriska gemener. Värdet ACRNAME sammanfogas med variabeln RANDOM_STRING som lagrar en slumpmässig 10-siffrig sträng för att säkerställa att registernamnet är unikt. Variabeln RESOURCE_GROUP med värdet myResourceGroup för resursgruppen och LOCATION med värdet westus2. Du kan använda dessa värden eller skapa egna.

  2. Skapa en resursgrupp med kommandot az group create .

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. Skapa en ACR-instans med hjälp av cmdleten New-AzContainerRegistry och ange ditt eget unika registernamn. Den grundläggande SKU:n är en kostnadsoptimerad startpunkt för utvecklingsändamål som ger en bra balans mellan lagring och dataflöde.

    az group show --name $RESOURCE_GROUP --query name --output tsv
    
  4. Skapa en ACR-instans med kommandot az acr create och ange ditt eget unika registernamn. Den grundläggande SKU:n är en kostnadsoptimerad startpunkt för utvecklingsändamål som ger en bra balans mellan lagring och dataflöde.

    az acr create \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --name $ACRNAME \
      --sku Basic
    

    Kontrollera att registreringsetableringstillståndet är Succeeded innan du fortsätter:

    az acr show --name $ACRNAME --resource-group $RESOURCE_GROUP --query provisioningState --output tsv
    

Skapa och ladda upp containeravbildningar till registret

Skapa och push-överför avbildningarna till din ACR med hjälp av kommandot Azure CLI az acr build. Kommandona az acr build använder bilder i den repository du klonade i föregående artikel för att förbereda en app för AKS. Kontrollera att du växlar till den katalogen build annars misslyckas kommandona. Om du till exempel skapade katalogen demorepo och klonade repositoryt är repositoryts rotmapp aks-store-demo så byt till mappen demorepo/aks-store-demo.

Innan du kör build-kommandona kontrollerar du att den aktuella katalogen innehåller de förväntade tjänstmapparna:

ls ./src/order-service ./src/store-front

Det finns inte en motsvarande Azure PowerShell cmdlet som skapar eller push-överför containeravbildningar till registret. Du måste använda stegen för Azure CLI, men med variabeln ACRNAME inställd på det värde som du skapade i PowerShell. I PowerShell kan du hämta värdet med kommandot $ACRNAME.

I följande exempel skapar vi inte avbildningen product-service . Den här avbildningen kan ta lång tid att skapa och det finns redan en containeravbildning i GitHub Container Registry (GHCR). Du kan använda az acr import kommandot för att importera avbildningen från GHCR till din ACR-instans. Vi skapar inte heller avbildningen rabbitmq . Den här avbildningen är tillgänglig från den Docker Hub offentliga lagringsplatsen och behöver inte skapas eller push-överföras till din ACR-instans.

az acr import \
  --name $ACRNAME \
  --source ghcr.io/azure-samples/aks-store-demo/product-service:latest \
  --image aks-store-demo/product-service:1.0

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/order-service:1.0 ./src/order-service/

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/store-front:1.0 ./src/store-front/

Om du får ett auktoriseringsfel, kör az login, bekräfta den aktiva prenumerationen med az account show och kör sedan det misslyckade kommandot igen.

Lista avbildningar i registret

Visa bilderna i din ACR-instans med hjälp av az acr repository list kommandot .

az acr repository list --name $ACRNAME --output table

I följande exempelutdata visas tillgängliga avbildningar i registret:

Result
----------------
aks-store-demo/product-service
aks-store-demo/order-service
aks-store-demo/store-front

Nästa steg

I den här självstudien har du skapat en ACR och pushat avbildningar till den för att använda i ett AKS-kluster. Du har lärt dig att:

  • Skapa en ACR-instans.
  • Använd ACR Tasks för att skapa och skicka containeravbildningar till ACR.
  • Visa avbildningar i registret.

I nästa självstudie får du lära dig hur du distribuerar ett Kubernetes-kluster i Azure.