Kurz – Vytvoření Azure Container Registry (ACR) a sestavení imagí

Azure Container Registry (ACR) je privátní registr pro image kontejneru. Privátní registr kontejneru umožňuje bezpečně sestavovat a nasazovat aplikace a vlastní kód.

V tomto návodu vytvoříte a nakonfigurujete instanci ACR a přenesete do ní kontejnerový obraz. Naučíte se:

  • Vytvořte instanci ACR.
  • Použijte ACR Tasks k sestavení a odeslání image kontejneru do ACR.
  • Zobrazit snímky v registru

Než začnete

V předchozím kurzu jste naklonovali úložiště kódu aplikace a použili Docker k vytvoření image kontejneru pro jednoduchou aplikaci Azure Store Front. Pokud jste image aplikace Azure Store Front nevytvořili, vraťte se na Tutorial 1 – Příprava aplikace pro AKS.

Tento kurz vytvoří zpoplatněné prostředky Azure, včetně skupiny prostředků a registru kontejnerů Azure. K provedení těchto kroků potřebujete oprávnění k vytváření skupin prostředků a Azure Container Registry prostředků ve vašem předplatném, jako je přispěvatel nebo vlastník.

Tento kurz vyžaduje Azure CLI verze 2.0.53 nebo novější. Verzi najdete spuštěním az --version příkazu. Pokud potřebujete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.

Vytvoření Azure Container Registry

Před vytvořením instance ACR potřebujete skupinu prostředků. Skupina prostředků Azure je logický kontejner, do kterého nasazujete a spravujete Azure prostředky.

  1. Vytvořte proměnné pro název skupiny prostředků, umístění a název registru. Tyto hodnoty můžete použít nebo si vytvořit vlastní. Hodnota proměnné názvu registru uložená v ACRNAME musí být jedinečná v rámci Azure a obsahovat 5–50 malých alfanumerických znaků.

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

    Hodnota proměnné názvu registru uložená v ACRNAME musí být jedinečná v rámci Azure a obsahovat 5–50 malých alfanumerických znaků. Hodnota ACRNAME je zřetězena s RANDOM_STRING proměnnou, která ukládá náhodný 10místný řetězec, aby byl název registru jedinečný. Proměnná RESOURCE_GROUP s hodnotou myResourceGroup pro skupinu prostředků a LOCATION s hodnotou westus2. Tyto hodnoty můžete použít nebo si vytvořit vlastní.

  2. Vytvořte skupinu prostředků pomocí příkazu az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. Pomocí rutiny New-AzContainerRegistry vytvořte instanci ACR a zadejte vlastní jedinečný název registru. Skladová položka Basic představuje vstupní bod optimalizovaný z hlediska nákladů pro účely vývoje a poskytuje vyváženou kombinaci úložiště a propustnosti.

    az group show --name $RESOURCE_GROUP --query name --output tsv
    
  4. Pomocí příkazu vytvořte instanci az acr create ACR a zadejte vlastní jedinečný název registru. Skladová položka Basic představuje vstupní bod optimalizovaný z hlediska nákladů pro účely vývoje a poskytuje vyváženou kombinaci úložiště a propustnosti.

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

    Ověřte, že stav zřizování registru je Succeeded, než budete pokračovat:

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

Vytvoření a nahrání obrazů kontejneru do registru

Sestavte a nasdílejte image do služby ACR pomocí příkazu Azure CLI az acr build. Příkazy az acr build využívají image v úložišti, které jste naklonovali v předchozím článku Příprava aplikace pro AKS. Ujistěte se, že přepnete do daného adresáře, jinak příkazy selžou build. Pokud jste například vytvořili demorepo a naklonovali úložiště, kořenový adresář úložiště je aks-store-demo, takže přejděte do adresáře demorepo/aks-store-demo .

Před spuštěním příkazů sestavení ověřte, že váš aktuální adresář obsahuje očekávané složky služby:

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

Neexistuje ekvivalentní Azure PowerShell rutina, která do registru sestaví nebo nasdílí image kontejneru. Musíte použít postup pro Azure CLI, ale s proměnnou ACRNAME nastavenou na hodnotu, kterou jste vytvořili v PowerShellu. V PowerShellu můžete získat hodnotu pomocí příkazu $ACRNAME.

V následujícím příkladu product-service image nezkompilujeme. Sestavení této image může trvat dlouho a v GitHub Container Registry (GHCR) už existuje image kontejneru. Pomocí az acr import příkazu můžete importovat image z GHCR do vaší instance ACR. Image také nevytvojíme rabbitmq . Tato image je k dispozici z veřejného úložiště Docker Hub a není nutné ji vytvářet ani nasdílovat do instance služby ACR.

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/

Pokud se zobrazí chyba autorizace, spusťte az login, potvrďte aktivní předplatné a az account showpak znovu spusťte neúspěšný příkaz.

Výpis obrazů v registru

Pomocí příkazu az acr repository list zobrazte obrázky ve své instanci služby ACR.

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

Následující příklad výstupu obsahuje seznam dostupných imagí v registru:

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

Další kroky

V tomto kurzu jste vytvořili ACR a odeslali do něj image, které se mají použít v clusteru AKS. Naučili jste se:

  • Vytvořte instanci ACR.
  • Použijte ACR Tasks k sestavení a odeslání image kontejneru do ACR.
  • Zobrazit snímky v registru

V dalším kurzu se dozvíte, jak nasadit cluster Kubernetes v Azure.