Поделиться через


Руководство. Создание Реестр контейнеров Azure (ACR) и построение образов

Реестр контейнеров Azure (ACR) — это частный реестр для образов контейнеров. Частный реестр контейнеров позволяет безопасно создавать и развертывать приложения и пользовательский код.

В этом руководстве вы развернете экземпляр ACR и загрузите в него образ контейнера. Вы узнаете, как:

  • Создайте экземпляр ACR.
  • Используйте задачи ACR для создания и отправки образов контейнеров в ACR.
  • Просмотр изображений в реестре.

Перед тем как начать

В предыдущем руководстве вы клонировали репозиторий кода приложения и использовали Docker для создания образа контейнера для приложения Azure Store Front. Если вы не создали образ приложения Azure Store Front, вернитесь к Tutorial 1 . Подготовка приложения для AKS.

Для работы с этим руководством требуется Azure CLI версии 2.0.53 или более поздней. Чтобы найти версию, выполните команду az --version. Если необходимо установить или обновить, см. раздел Install Azure CLI.

Создайте реестр контейнеров Azure

Перед созданием экземпляра ACR необходимо создать группу ресурсов. Группа ресурсов Azure — это логический контейнер, в котором развертываются ресурсы Azure и управляют ими.

  1. Создайте переменные для имени группы ресурсов, расположения и имени реестра. Эти значения можно использовать или создать самостоятельно. Значение переменной имени реестра, хранящейся в ACRNAME, должно быть уникальным в пределах Azure и содержать 5–50 строчных буквенно-цифровых символов.

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

    Значение переменной имени реестра, хранящейся в ACRNAME, должно быть уникальным в пределах Azure и содержать 5–50 строчных буквенно-цифровых символов. Значение ACRNAME объединяется с RANDOM_STRING переменной, в которой хранится случайная 10-разрядная строка, чтобы убедиться, что имя реестра уникально. Переменная RESOURCE_GROUP со значением myResourceGroup для группы ресурсов и LOCATION значением westus2. Эти значения можно использовать или создать самостоятельно.

  2. Создайте группу ресурсов с помощью команды az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. Создайте экземпляр ACR с помощью az acr create команды и укажите собственное уникальное имя реестра. SKU Базовый — это оптимизированная по стоимости точка входа для целей разработки, обеспечивающая баланс ресурсов хранения и пропускной способности.

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

Создание и отправка образов контейнеров в реестр

Создайте и отправьте образы в ACR с помощью команды Azure CLI az acr build. Команды az acr build используют изображения в репозитории, который вы клонировали из предыдущей статьи подготовка приложения для AKS. Убедитесь, что вы переключитесь в этот каталог, или build команды завершаются ошибкой. Например, если вы создали каталог demorepo и клонировали репозиторий, корневой каталог репозитория является aks-store-demo, поэтому переключитесь на каталог demorepo/aks-store-demo .

Существует не эквивалентный командлет Azure PowerShell, который создает или отправляет образы контейнеров в реестр. Необходимо следовать шагам для Azure CLI, но переменной ACRNAME должно быть присвоено значение, которое вы создали в PowerShell. В PowerShell можно получить значение с помощью команды $ACRNAME.

В следующем примере мы не создадим product-service образ. Этот образ может занять много времени для сборки, и в реестре контейнеров GitHub (GHCR) уже доступен образ контейнера. С помощью az acr import команды можно импортировать изображение из GHCR в экземпляр ACR. Мы также не создаём rabbitmq образ. Этот образ доступен из общедоступного репозитория Docker Hub и не требуется создавать или отправлять в экземпляр ACR.

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

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

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

Перечислить образы в реестре

Просмотрите изображения в вашем экземпляре ACR с помощью команды az acr repository list.

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

В следующем примере выходных данных перечислены доступные образы в реестре:

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

Дальнейшие шаги

В этом руководстве описано, как создать ACR и отправить в него образы, которые будут использоваться в кластере AKS. Вы узнали, как:

  • Создайте экземпляр ACR.
  • Используйте задачи ACR для создания и отправки образов контейнеров в ACR.
  • Просмотр изображений в реестре.

В следующем руководстве вы узнаете, как развернуть кластер Kubernetes в Azure.