Упражнение. Развертывание образа Docker в экземпляре контейнера Azure

Завершено

Экземпляр контейнера Azure позволяет запустить образ Docker в Azure.

В предыдущем упражнении вы упаковывали и тестировали свое веб-приложение в виде локального образа Docker. Теперь вы хотите использовать выходные данные этого упражнения и сделать веб-приложение доступным глобально. Для этого можно запустить образ в качестве экземпляра контейнера Azure.

В этом упражнении вы повторно создадите образ веб-приложения и отправите его в реестр контейнеров Azure. Для запуска образа будет использоваться служба экземпляров контейнеров Azure.

Внимание

Для выполнения этого упражнения вам нужна собственная подписка Azure. При этом с вас может взиматься плата. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

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

  1. Войдите на портал Azure, используя свою подписку Azure.

  2. В меню ресурсов или на домашней странице выберите элемент Создать ресурс. Откроется панель Создание ресурса.

  3. В меню выберите Контейнеры, а затем — Реестр контейнеров.

    Снимок экрана: создание ресурса с помощью реестра контейнеров.

    Откроется панель Создание реестра контейнеров.

  4. На вкладке Основные сведения введите указанные ниже значения для каждого параметра.

    Параметр Значение
    Сведения о проекте
    Отток подписок Выберите подписку Azure, в которой вы можете создавать ресурсы и управлять ими.
    Группа ресурсов Выберите "Создать" и создайте новую группу ресурсов с именем learn-deploy-container-acr-rg. Запомните выбранное имя, поскольку оно будет использоваться в остальных упражнениях этого модуля. Также не забудьте очистить этот ресурс по завершении работы с модулем.
    Сведения об экземпляре
    Имя реестра Введите любое имя. Имя реестра должно быть уникальным в пределах Azure и содержать от 5 до 50 буквенно-цифровых символов.
    Расположение Выберите расположение, близкое к вам.
    Использование pон доступности Примите значение по умолчанию.
    Ценовой план Стандартные
  5. Выберите Review + create (Просмотреть и создать). Когда отобразится уведомление Проверка пройдена, щелкните Создать. Перед продолжением дождитесь завершения развертывания реестра контейнеров.

  6. Выберите Перейти к ресурсу. В области Реестр контейнеров отображаются основные сведения о реестре контейнеров.

  7. В меню ресурсов в разделе Параметры выберите пункт Ключи доступа. Появится панель Ключи доступа для реестра контейнеров.

  8. Если параметр пользователя администратора отключен, установите флажок рядом с ключом доступа администратора. Отобразятся имя пользователя и пароль для реестра контейнеров.

  9. Запишите значения Имя реестра, Сервер входа, Имя пользователя и Пароль для реестра контейнеров.

    Примечание.

    В этом упражнении мы включили доступ к учетной записи администратора для отправки образов и тестирования реестра. В рабочей среде важно отключить доступ к учетной записи администратора и использовать Защита идентификации Microsoft Entra, как только вы удовлетворены тем, что реестр работает должным образом.

    Снимок экрана с сведениями о ключах доступа.

Отправка образа для приложения системы бронирования номеров в гостинице в реестр контейнеров Azure

  1. В локальной командной строке выполните следующую команду, заменив <registry-name> имя реестра контейнеров, чтобы пометить текущий reservationsystem образ именем реестра:

    docker tag reservationsystem:latest <registry-name>.azurecr.io/reservationsystem:latest
    
  2. docker image ls Выполните команду, чтобы убедиться, что образ помечен правильно:

    docker image ls
    

    Должен отобразиться результат, аналогичный следующему:

    REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
    reservationsystem                             latest              a56281e7038f        4 minutes ago       1.76GB
    <registry-name>.azurecr.io/reservationsystem  latest              a56281e7038f        4 minutes ago       1.76GB
    
  3. В командной строке войдите в Реестр контейнеров Azure. Используйте команду docker login и укажите сервер входа для реестра, который вы запомнили ранее. При появлении запроса введите имя пользователя и пароль из ключей доступа.

    docker login <login-server>
    

    Примечание.

    Вы можете получить ответ на ошибку от управляющей программы, которую приложение не зарегистрировано в идентификаторе Microsoft Entra. Как отмечалось ранее в этом упражнении, вы включили ключ доступа Администратор для тестирования развертывания.

  4. Введите следующую команду, заменив <registry-name> собственное имя реестра, чтобы отправить образ в реестр в Реестр контейнеров Azure:

    docker push <registry-name>.azurecr.io/reservationsystem:latest
    

    Дождитесь завершения отправки. Отправка всех объектов образа в репозиторий займет несколько минут. Ход выполнения можно наблюдать по мере продвижения каждого объекта от "Ожидание до подготовки к отправке в pushed".

Проверка содержимого реестра

Для выполнения остальной части упражнения вы вернетесь на портал Azure.

  1. На портале Azure вернитесь к своему реестру контейнеров.

  2. В меню ресурсов в разделе Службы выберите элемент Репозитории. Откроется панель Репозитории для реестра контейнеров.

  3. Убедитесь, что репозиторий reservationsystem отображается. Выберите репозиторий reservationsystem и убедитесь, что он содержит образ с тегом latest.

    Снимок экрана: репозиторий и образ контейнера системы бронирования с тегом в реестре.

Загрузка и запуск образа с помощью экземпляра контейнера Azure

  1. На портале Azure выберите Создать ресурс. Откроется панель Создание ресурса.

  2. В меню ресурсов выберите Контейнеры, а затем — Экземпляры контейнеров.

    Снимок экрана: пункт

    Откроется панель Создание экземпляра контейнера.

    Настройка экземпляра контейнера выполняется в несколько действий. Для начала укажите сведения о группе ресурсов и контейнере. Затем настройте параметры сети контейнера и перезапустите политику.

  3. На вкладке Основные сведения введите указанные ниже значения для каждого параметра.

    Параметр Значение
    Сведения о проекте
    Отток подписок Выберите подписку Azure по умолчанию, в которой вы можете создавать ресурсы и управлять ими
    Группа ресурсов Повторно используйте имеющуюся группу ресурсов learn-deploy-container-acr-rg.
    Сведения о контейнере
    Имя контейнера hotelsysteminstance
    Область/регион Используйте расположение по умолчанию
    Зоны доступности Примите значение по умолчанию
    Номер SKU Стандартные
    Источник изображения Другой реестр
    Тип изображения Private
    Изображения <имя-реестра>.azurecr.io/reservationsystem:latest
    Сервер входа реестра образов Введите имя сервера входа для реестра
    Имя пользователя для реестра образов Введите имя пользователя для реестра
    Пароль для реестра образов Введите пароль для реестра
    Тип ОС Linux
    Размер Оставьте для параметра Размер значения по умолчанию: 1 виртуальный ЦП, 1,5 ГиБ памяти, 0 графических процессоров
  4. Выберите Далее: сеть.

  5. На вкладке Сеть введите указанные ниже значения для каждого параметра.

    Параметр Значение
    Тип сети Общедоступный
    Метка DNS-имени Укажите уникальное имя. Оно будет использоваться как часть URL-адреса контейнера.
    Повторное использование области меток DNS-имени Примите значение по умолчанию
    Порты
    Порты 80
    Протокол портов TCP
  6. Нажмите кнопку Далее: Дополнительно.

  7. На вкладке Дополнительно введите указанные ниже значения для каждого параметра.

    Параметр Значение
    Политика перезапуска Всегда
    Переменные среды оставьте все параметры пустыми
    Переопределение команды Не указывайте
  8. Выберите Review + create (Просмотреть и создать). Дождитесь завершения проверки и при необходимости исправьте все ошибки.

  9. Нажмите кнопку создания.

  10. После создания экземпляра контейнера щелкните Перейти к ресурсу. Откроется панель экземпляра контейнера.

  11. На панели Обзор найдите полное доменное имя (FQDN) экземпляра контейнера.

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

  12. Используя веб-браузер, перейдите по URL-адресу http://FQDN/api/reservations/1, заменив FQDN полным доменным именем экземпляра контейнера. Например, использование видимого FQDN на снимке экрана выше может выглядеть следующим образом:

    http://hotel.southcentralus.azurecontainer.io/api/reservations/1
    

    В ответ веб-приложение должно предоставить объект JSON, содержащий подробные сведения о бронировании 1.

Поздравляем! Вы отправили образ Docker в реестр контейнеров Azure и запустили его с помощью службы экземпляров контейнеров Azure.