Руководство по созданию образов контейнеров в кластере Linux Service Fabric

Это руководство является частью одной из серии учебников, демонстрирующей использование контейнеров в кластере Linux Service Fabric. В этом руководстве приложение с несколькими контейнерами подготовлено для использования с Service Fabric. В последующих руководствах эти образы используются в составе приложения Service Fabric. В этом руководстве описано, как:

  • Клонирование источника приложения из GitHub
  • Создание образа контейнера из источника приложения
  • Развертывание экземпляра реестра контейнеров Azure (ACR)
  • Отметить образ контейнера для ACR
  • Загрузите изображение в ACR.

В этой серии учебников вы узнаете, как:

Предпосылки

  • Среда разработки Linux, настроенная для Service Fabric. Следуйте инструкциям, приведенным здесь , чтобы настроить среду Linux.
  • В этом руководстве требуется, чтобы вы работали с Azure CLI версии 2.0.4 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, обратитесь к статье Установка Azure CLI.
  • Кроме того, требуется, чтобы у вас была доступная подписка Azure. Дополнительные сведения о бесплатной пробной версии см. здесь.

Получение кода приложения

Пример приложения, используемого в этом руководстве, является приложением для голосования. Приложение состоит из веб-фронтенда и серверного экземпляра Redis. Компоненты упаковываются в образы контейнеров.

Используйте git, чтобы скачать копию приложения в среду разработки.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

Решение содержит две папки и файл docker-compose.yml. Папка Azure-vote содержит интерфейсную службу Python вместе с Dockerfile, используемой для сборки образа. Каталог "Голосование" содержит пакет приложения Service Fabric, развернутый в кластере. Эти каталоги содержат необходимые ресурсы для этого руководства.

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

В каталоге azure-vote выполните следующую команду, чтобы создать образ для внешнего веб-компонента. Эта команда использует Dockerfile в этом каталоге для создания образа.

docker build -t azure-vote-front .

Примечание.

Если вам отказано в разрешении, следуйте этой инструкции о том, как работать с Docker без sudo.

Эта команда может занять некоторое время, так как необходимо извлечь все необходимые зависимости из Docker Hub. По завершении используйте команду docker images для просмотра только что созданного образа azure-vote-front .

docker images

Развертывание Реестра контейнеров Azure

Сначала выполните команду az login , чтобы войти в учетную запись Azure.

az login

Затем используйте команду az account , чтобы выбрать подписку для создания реестра контейнеров Azure. Вместо <subscription_id> вам необходимо ввести идентификатор вашей подписки Azure.

az account set --subscription <subscription_id>

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

Создайте группу ресурсов с помощью команды az group create. В этом примере группа ресурсов с именем myResourceGroup создается в регионе westus .

az group create --name <myResourceGroup> --location westus

Создайте реестр контейнеров Azure с помощью команды az acr create . Замените <acrName> именем реестра контейнеров, который вы хотите создать в подписке. Это имя должно быть буквенно-цифровым и уникальным.

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

В остальной части этого руководства мы используем acrName в качестве заполнителя для выбранного имени реестра контейнеров. Запишите это значение.

Вход в реестр контейнеров

Войдите в свой экземпляр ACR перед загрузкой изображений. Используйте команду az acr login, чтобы выполнить операцию. Укажите уникальное имя, заданное реестру контейнеров при его создании.

az acr login --name <acrName>

Команда возвращает сообщение "Login Succeeded" после завершения.

Теги образов контейнеров

Каждый образ контейнера должен быть помечен именем loginServer реестра. Данный тег используется для маршрутизации при отправке образов контейнеров в реестр образов.

Чтобы просмотреть список текущих образов, используйте команду docker images .

docker images

Выходные данные:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

Чтобы получить имя сервера входа, выполните следующую команду:

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

В результате выводится таблица со следующими результатами. Этот результат будет использоваться для добавления тега образу azure-vote-front перед его публикацией в реестре контейнеров на следующем шаге.

Result
------------------
<acrName>.azurecr.io

Теперь пометьте образ azure-vote-front с помощью loginServer вашего реестра контейнеров. Кроме того, добавьте :v1 в конец имени изображения. Этот тег указывает версию образа.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

После того как вы присвоите тег, выполните команду 'docker images', чтобы проверить выполненную операцию.

Выходные данные:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

Отправка образов в реестр

Отправьте образ azure-vote-front в реестр.

В следующем примере замените имя сервера входа ACR на имя loginServer из вашей среды.

docker push <acrName>.azurecr.io/azure-vote-front:v1

Команды docker push занимают несколько минут.

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

Чтобы вернуть список образов, отправленных в реестр контейнеров Azure, используйте команду az acr repository list . Обновите команду, включив имя экземпляра ACR.

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

Выходные данные:

Result
----------------
azure-vote-front

По завершении руководства образ контейнера хранится в частном экземпляре реестра контейнеров Azure. Этот образ развертывается из ACR в кластер Service Fabric в последующих руководствах.

Дальнейшие действия

В этом руководстве приложение было извлечено из GitHub, а контейнерные образы были созданы и отправлены в реестр. Были выполнены следующие действия:

  • Клонирование источника приложения из GitHub
  • Создание образа контейнера из источника приложения
  • Развертывание экземпляра реестра контейнеров Azure (ACR)
  • Отметить образ контейнера для ACR
  • Загрузите изображение в ACR.

Перейдите к следующему руководству, чтобы узнать о упаковке контейнеров в приложение Service Fabric с помощью Yeoman.