Краткое руководство Запуск пользовательского контейнера в Azure
Статья
служба приложение Azure предоставляет стандартные стеки приложений в Windows, например ASP.NET или Node.js, которые выполняются в службах IIS. Предварительно настроенные стеки приложений блокируют операционную систему и предотвращают низкоуровневый доступ. Пользовательские контейнеры Windows не имеют этих ограничений. Они позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.
В этом кратком руководстве показано, как развернуть приложение ASP.NET в образе Windows для Реестр контейнеров Azure из Visual Studio. Приложение можно запустить в пользовательском контейнере в Службе приложений Azure.
Установите Visual Studio 2022, а также следующие рабочие нагрузки: ASP.NET и веб-разработка и разработка Azure. В Visual Studio 2022 Community убедитесь, что компонент платформа .NET Framework проектов и шаблонов элементов выбран с ASP.NET и рабочей нагрузкой веб-разработки. Если вы уже установили Visual Studio 2022:
Установите последние обновления для Visual Studio, выбрав Справка>Проверить обновления.
Добавьте рабочие нагрузки в Visual Studio, выбрав Инструменты>Получить средства и компоненты.
В разделе "Создание проекта" выберите ASP.NET веб-приложение (платформа .NET Framework) для C#, а затем нажмите кнопку "Далее".
На вкладке Настройка нового проекта в разделе Имя проекта назовите приложение myfirstazurewebapp. В разделе Платформа выберите .NET Framework 4.8 и щелкните Создать.
Вы можете развернуть любой тип веб-приложения ASP.NET в Azure. В рамках этого краткого руководства выберите шаблон MVC.
В разделе Аутентификация выберите Нет. В разделе "Дополнительно" выберите службу поддержки контейнеров и снимите флажок "Настройка для HTTPS". Нажмите кнопку создания.
Если файл Dockerfile не открылся автоматически, откройте его в обозревателе решений.
Вам потребуется поддерживаемый родительский образ. Измените родительский образ, заменив строку FROM приведенным ниже кодом. Затем сохраните файл.
Dockerfile
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
В меню Visual Studio выберите Отладка>Запустить без отладки, чтобы запустить приложение локально.
Публикация в Реестре контейнеров Azure
Щелкните правой кнопкой мыши проект myfirstazurewebapp в обозревателе решений и выберите Опубликовать.
На вкладке Целевой объект выберите Реестр контейнеров Docker и щелкните Далее.
На вкладке Определенный целевой объект выберите Реестр контейнеров Azure и щелкните Далее.
В разделе "Публикация" выберите правильную подписку. В реестрах контейнеров выберите "Создать", чтобы создать новую Реестр контейнеров Azure.
В разделе "Создать" выберите правильную подписку. В разделе Группа ресурсов выберите Новая, введите в качестве имени myResourceGroup и щелкните ОК. В разделе Номер SKU выберите Базовый. В разделе Расположение реестра выберите расположение реестра и щелкните Создать.
На вкладке Публикация в разделе Реестр контейнеров выберите созданный реестр и щелкните Готово.
Дождитесь завершения развертывания. Теперь на странице Публикация отображается имя репозитория. Нажмите кнопку Копировать, чтобы скопировать имя репозитория для последующего использования.
Выберите Создать ресурс в верхнем левом углу окна портала Azure.
В разделе Популярные службы в подразделе Веб-приложение выберите Cоздать.
В окне Создание веб-приложения выберите подписку и группу ресурсов. При необходимости можно создать новую группу ресурсов.
Укажите имя приложения, например win-container-demo. Для публикации выберите контейнер.
Операционная система: выберите Windows.
Нажмите кнопку Далее: База данных, а затем далее: контейнер для продолжения.
В поле Источник образа выберите Docker Hub, а для параметра Образ и тег укажите имя репозитория, скопированное в разделе Публикация в Реестре контейнеров Azure.
Если у вас есть пользовательский образ для веб-приложения в другом расположении, например реестре контейнеров Azure или любом другом частном репозитории, его можно настроить здесь. Чтобы продолжить, выберите Просмотр и создание.
Проверьте все сведения и нажмите кнопку "Создать".
Дождитесь создания необходимых ресурсов в Azure.
Переход к пользовательскому контейнеру
По завершении операции портал Azure отображает уведомление.
Выберите Перейти к ресурсу.
В обзоре этого ресурса следуйте ссылке рядом с доменом по умолчанию.
В браузере откроется следующая страница:
Подождите несколько минут и повторите попытку, пока не отобразится домашняя страница ASP.NET по умолчанию.
Поздравляем! Вы запустили свой первый пользовательский контейнер Windows в службе приложений Azure.
Просмотр журналов запуска контейнера
Для загрузки контейнера Windows может потребоваться некоторое время. Чтобы просмотреть ход выполнения, перейдите по следующему URL-адресу, заменив <app_name>> именем приложения.
2018-07-27T12:03:11 Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully
Обновление на локальном компьютере и повторное развертывание
В Visual Studio в обозревателе решений откройте Представления>Главная страница>Index.cshtml.
Найдите тег HTML <div class="jumbotron"> в верхней области и замените его следующим кодом:
HTML
<divclass="jumbotron"><h1>ASP.NET in Azure!</h1><pclass="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p></div>
Чтобы выполнить повторное развертывание в Azure, щелкните правой кнопкой мыши проект myfirstazurewebapp в обозревателе решений и выберите Опубликовать.
На странице публикации выберите Опубликовать и дождитесь завершения публикации.
Чтобы указать службе приложений извлечь новый образ из Docker Hub, перезапустите приложение. На странице приложения в портал Azure выберите "Перезапустить>да".
Снова перейдите к пользовательскому контейнеру. При обновлении веб-страницы приложение должно вернуться на страницу "Запуск" сначала, а затем отобразить обновленную веб-страницу.
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
служба приложение Azure в Linux предоставляет готовые стеки приложений в Linux с поддержкой таких языков, как .NET, Java, Node.js и PHP. Вы также можете использовать пользовательский образ Docker для запуска веб-приложения в стеке приложений, который еще не определен в Azure. В этом кратком руководстве показано, как развернуть образ из Реестра контейнеров Azure (ACR) в Службе приложений.
Дополнительные сведения о контейнерных приложениях в бессерверной среде см. в разделе "Приложения контейнеров".
Расширение Службы приложений Azure для VS Code. Это расширение можно использовать для создания и развертывания веб-приложений Linux на платформе Azure в рамках модели "платформа как служба" (PaaS), а также для управления ими.
Расширение Docker для VS Code. С помощью этого расширения можно упростить управление локальными образами и командами Docker, а также развернуть созданные образы приложений в Azure.
Создание реестра контейнеров
В этом кратком руководстве в качестве реестра используется Реестр контейнеров Azure. Вы можете использовать другие реестры, но шаги могут немного отличаться.
При создании реестра контейнеров Azure не забудьте установить для параметра Администратор значение Включить. Его также можно установить из раздела Ключи доступа на странице реестра на портале Azure. Этот параметр необходим для доступа к Службе приложений. Сведения об управляемом удостоверении см. в учебнике по развертыванию из ACR.
Войдите в систему.
Запустите Visual Studio Code.
Выберите логотип Azure на панели действий, перейдите к ACCOUNTS и TENANTS. Выберите вход в Azure и следуйте инструкциям.
Убедитесь, что в строке состояния внизу указан ваш адрес электронной почты учетной записи Azure. В обозревателе СЛУЖБЫ ПРИЛОЖЕНИЙ должна отобразиться подписка.
На панели действий выберите логотип Docker. Убедитесь, что в обозревателе РЕЕСТРОВ отображается созданный реестр контейнеров.
Проверка предварительных требований
Убедитесь, что Docker установлен и запущен. Следующая команда отображает версию Docker, если она запущена.
Bash
docker --version
Создание и сборка образа
В Visual Studio Code откройте пустую папку и добавьте файл с именем Dockerfile. В Dockerfile вставьте содержимое на основе требуемой языковой платформы:
В этом файле Dockerfile родительский образ является одним из встроенных контейнеров .NET Службы приложений Azure.
Dockerfile
FROM mcr.microsoft.com/appsvc/dotnetcore:lts
ENV PORT 8080EXPOSE8080ENV ASPNETCORE_URLS "http://*:${PORT}"ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]
В этом файле Dockerfile родительский образ является одним из встроенных контейнеров Node.js Службы приложений Azure.
Dockerfile
FROM mcr.microsoft.com/appsvc/node:10-lts
ENV HOST 0.0.0.0ENV PORT 8080EXPOSE8080ENTRYPOINT ["pm2", "start", "--no-daemon", "/opt/startup/default-static-site.js"]
В этом файле Dockerfile родительский образ является одним из встроенных контейнеров Python Службы приложений Azure.
Dockerfile
FROM mcr.microsoft.com/appsvc/python:latest
ENV PORT 8080EXPOSE8080ENTRYPOINT ["gunicorn", "--timeout", "600", "--access-logfile", "'-'", "--error-logfile", "'-'", "--chdir=/opt/defaultsite", "application:app"]
В этом файле Dockerfile родительский образ является одним из встроенных контейнеров Java Службы приложений Azure. Исходные файлы можно найти на java/tree/dev/java11-alpine. Соответствующий Dockerfile копирует простое приложение Java в /tmp/appservice. Файл Dockerfile запускает это приложение.
Dockerfile
FROM mcr.microsoft.com/azure-app-service/java:11-java11_stable
ENV PORT 80EXPOSE80ENTRYPOINT ["java", "-Dserver.port=80", "-jar", "/tmp/appservice/parkingpage.jar"]
Откройте палитру команди введите Образы Docker: сборка образа. Нажмите клавишу ВВОД , чтобы выполнить команду.
В поле тега образа укажите нужный тег в следующем формате: <acr-name>.azurecr.io/<image-name>:<tag>, где <acr-name> — это имя созданного вами реестра контейнеров. Выберите ВВОД.
После завершения сборки образа нажмите кнопку "Обновить " в верхней части обозревателя IMAGES и убедитесь, что изображение успешно создано.
Развертывание в реестре контейнеров
На панели действий выберите значок Docker . В обозревателе образов найдите только что созданный образ.
Разверните изображение, щелкните правой кнопкой мыши нужный тег и нажмите кнопку "Отправить".
Убедитесь, что тег образа начинается с <acr-name>.azurecr.io, и нажмите клавишу Ввод.
Когда Visual Studio Code завершит отправку образа в реестр контейнеров, выберите "Обновить " в верхней части обозревателя REGISTRYIES и убедитесь, что образ успешно отправлен.
Развертывание в службу приложений
В обозревателе REGISTRIES разверните изображение, щелкните правой кнопкой мыши тег и выберите "Развернуть образ в службе приложение Azure".
Следуя инструкциям на экране, выберите подписку, глобально уникальное имя приложения, группу ресурсов и план Службы приложений. Выберите ценовую категорию B1 Basic (B1 Базовый) и регион.
После развертывания приложение будет доступно по адресу http://<app-name>.azurewebsites.net.
Группа ресурсов — это именованная коллекция всех ресурсов вашего приложения в Azure. Например, группа ресурсов может содержать ссылку на веб-сайт, базу данных и функцию Azure.
План Служба приложений определяет физические ресурсы, используемые для размещения веб-сайта. В этом кратком руководстве используется базовый план размещения в инфраструктуре Linux, что означает, что сайт размещается на компьютере Linux вместе с другими веб-сайтами. Если начать работу с планом Базовый, можно использовать портал Azure для увеличения масштаба, чтобы ваш сайт был единственным на компьютере. Сведения о ценах см на странице цен на Службу приложений.
Открытие веб-сайта в браузере
На панели вывода отображается состояние операций развертывания. После завершения операции щелкните Открыть сайт во всплывающем уведомлении, чтобы открыть сайт в браузере.
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Связанный контент
Поздравляем, вы успешно завершили работу с этим кратким руководством.
Приложение Службы приложений Azure извлекает образ из реестра контейнеров при каждом запуске. При перестроении образа необходимо просто отправить его в реестр контейнеров, и приложение будет получать при перезапуске его обновленную версию. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.
служба приложение Azure в Linux предоставляет готовые стеки приложений в Linux с поддержкой таких языков, как .NET, Java, Node.js и PHP. Вы также можете использовать пользовательский образ Docker для запуска веб-приложения в стеке приложений, который еще не определен в Azure. В этом кратком руководстве показано, как развернуть образ из Реестра контейнеров Azure в Службе приложений Azure.
Дополнительные сведения о контейнерных приложениях в бессерверной среде см. в разделе "Приложения контейнеров".
В поле поиска введите службы приложений. В разделе Службы выберите Службы приложений.
На странице Служба приложений выберите "Создать>веб-приложение".
На вкладке "Основные сведения" в разделе "Сведения о проекте" выберите правильную подписку. Выберите Создание для группы ресурсов. Введите myResourceGroup в качестве имени.
В разделе Сведения об экземпляре:
Введите глобально уникальное имя веб-приложения.
Выберите Контейнер.
Для операционной системы выберите Linux.
Выберите регион, из которого вы хотите обслуживать приложение.
В разделе План Службы приложений выберите Создать план Службы приложений. Введите myAppServicePlan для имени. Чтобы изменить уровень "Бесплатный", выберите "Изменить размер", перейдите на вкладку "Разработка и тестирование ", выберите F1. Выберите Применить.
В верхней части страницы выберите вкладку "Контейнер ".
На вкладке "Контейнер" для источника изображения выберите Реестр контейнеров Azure. В разделе Параметры Реестра контейнеров Azure задайте следующие значения:
В нижней части страницы выберите Review + create (Проверить и создать).
После выполнения проверки нажмите кнопку "Создать".
После завершения развертывания выберите Перейти к ресурсу.
Переход в приложение
Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Связанный контент
Поздравляем, вы успешно завершили работу с этим кратким руководством.
Приложение Служба приложений извлекает из реестра контейнеров каждый раз при запуске. Если вы перестроите образ, просто отправьте его в реестр контейнеров. Приложение извлекает обновленный образ при перезапуске. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.
служба приложение Azure предоставляет стандартные стеки приложений в Windows, например ASP.NET или Node.js, которые выполняются в службах IIS. Предварительно настроенные стеки приложений блокируют операционную систему и предотвращают низкоуровневый доступ. Пользовательские контейнеры Windows не имеют этих ограничений. Они позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.
В этом кратком руководстве показано, как развернуть приложение ASP.NET в образ Windows из Реестра контейнеров Azure в Службе приложений Azure.
Принудительная отправка образов в Реестр контейнеров Azure
Убедитесь, что вы находитесь в корневой папке клонированного репозитория. Этот репозиторий содержит файл Dockerfile.windows. В этой статье используется канал долгосрочной обслуживания Windows Nano Server (LTSC) 2022 в качестве базовой операционной системы, явно вызывая базу Windows.
Примечание
Несмотря на то, что этот контейнер является контейнером Windows, пути по-прежнему должны использовать косую черту. Дополнительные сведения см. в разделе "Запись Файла Dockerfile".
Войдите в Azure CLI.
Azure CLI
az login
Войти в Реестр контейнеров Azure.
Azure CLI
az acr login -n<your_registry_name>
Создание образа контейнера. В этом примере используется имя изображения dotnetcore-docs-hello-world-windows.
В поле поиска введите службы приложений. В разделе Службы выберите Службы приложений.
На странице Служба приложений выберите "Создать>веб-приложение".
На вкладке "Основные сведения" в разделе "Сведения о проекте" выберите правильную подписку. Выберите Создание для группы ресурсов. Введите myResourceGroup в качестве имени.
В разделе Сведения об экземпляре:
Введите глобально уникальное имя веб-приложения.
Выберите Контейнер.
Для операционной системы выберите Linux.
Выберите регион, из которого вы хотите обслуживать приложение.
В разделе План Службы приложений выберите Создать план Службы приложений. Введите myAppServicePlan для имени. Чтобы изменить уровень, выберите " Просмотреть планы ценообразования", выберите план и выберите " Выбрать " в нижней части страницы.
В верхней части страницы выберите вкладку "Контейнер ".
На вкладке "Контейнер" для источника изображения выберите Реестр контейнеров Azure. В разделе Параметры Реестра контейнеров Azure задайте следующие значения:
В нижней части страницы выберите Review + create (Проверить и создать).
После выполнения проверки нажмите кнопку "Создать".
После завершения развертывания выберите Перейти к ресурсу.
Переход в приложение
Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.
Операционная система узла отображается в нижнем колонтитуле, который подтверждает, что он выполняется в контейнере Windows.
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Связанный контент
Поздравляем, вы успешно завершили работу с этим кратким руководством.
Приложение Служба приложений извлекает из реестра контейнеров каждый раз при запуске. Если вы перестроите образ, просто отправьте его в реестр контейнеров. Приложение извлекает обновленный образ при перезапуске. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.
служба приложение Azure предоставляет стандартные стеки приложений в Windows, например ASP.NET или Node.js, которые выполняются в службах IIS. Предварительно настроенные стеки приложений блокируют операционную систему и предотвращают низкоуровневый доступ. Пользовательские контейнеры Windows не имеют этих ограничений. Они позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.
В этом кратком руководстве показано, как развернуть приложение ASP.NET в образ Windows из Реестра артефактов (Майкрософт) в Службе приложений Azure.
Создайте группу ресурсов с помощью команды New-AzResourceGroup. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus. Чтобы просмотреть все поддерживаемые расположения для Служба приложений, выполните команду Get-AzLocation.
В следующем примере создается план Службы приложений с именем myAppServicePlan и ценовой категорией PremiumV3 (-Tier PremiumV3). Параметр -HyperV позволяет указать контейнер Windows.
Поздравляем, вы успешно завершили работу с этим кратким руководством.
Приложение Служба приложений извлекает из реестра контейнеров каждый раз при запуске. Если вы перестроите образ, просто отправьте его в реестр контейнеров. Приложение извлекает обновленный образ при перезапуске. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.
служба приложение Azure предоставляет стандартные стеки приложений в Windows, например ASP.NET или Node.js, которые выполняются в службах IIS. Предварительно настроенные стеки приложений блокируют операционную систему и предотвращают низкоуровневый доступ. Пользовательские контейнеры Windows не имеют этих ограничений. Они позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.
В этом кратком руководстве показано, как развернуть приложение ASP.NET в образ Windows из Реестра артефактов (Майкрософт) в Службе приложений Azure.
Войдите в учетную запись Azure с помощью команды az login и следующего запроса:
Bash
az login
Создание или изменение группы ресурсов
Создайте группу ресурсов с помощью команды az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus. Чтобы просмотреть все поддерживаемые расположения для Служба приложений, выполните команду az appservice list-locations.
Azure CLI
az group create --name myResourceGroup --location eastus
В следующем примере создается план Службы приложений с именем myAppServicePlan и ценовой категорией P1V3 (--sku P1V3).
Azure CLI
az appservice plan create --resource-group myResourceGroup --location eastus --name myAppServicePlan --hyper-v--sku p1v3
Примечание
При возникновении ошибки поведение этой команды было изменено следующим расширением: appservice-kube удалите appservice-kube расширение.
Создание веб-приложения
Создайте пользовательское контейнерное веб-приложение в рамках плана Службы приложений myAppServicePlan с помощью команды az webapp create. Обязательно замените myContainerApp уникальным именем приложения (допустимые символы: a-z, 0-9 и -).
Поздравляем, вы успешно завершили работу с этим кратким руководством.
Приложение Служба приложений извлекает из реестра контейнеров каждый раз при запуске. Если вы перестроите образ, просто отправьте его в реестр контейнеров. Приложение извлекает обновленный образ при перезапуске. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
Узнайте, как создать образ Docker и сохранить его в реестре контейнеров Azure, а затем использовать службу приложений Azure для развертывания веб-приложения на основе образа.
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.
В этом пошаговом руководстве описано, как создать пользовательский образ Linux или Windows, отправить его в Реестр контейнеров Azure, а затем развернуть этот образ в Службе приложений Azure. Узнайте, как выполнить перенос пользовательского программного обеспечения в Службу приложений в пользовательском контейнере.
Добавьте контейнеры на стороне в пользовательский контейнер в службе приложение Azure. Добавьте или обновите службы в приложение без изменения контейнера приложения.