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


Создание образов контейнеров для использования со службой контейнеров Azure (не рекомендуется)

Совет

Обновленная версия этого руководства, использующая Служба Azure Kubernetes, см. в руководстве по подготовке приложения для Служба Azure Kubernetes (AKS).

Предупреждение

Служба контейнеров Azure (ACS) выводится из эксплуатации. В нее больше не добавляются новые компоненты или функциональные возможности. Все API, интерфейс портала, команды CLI и документы помечаются как нерекомендуемые.

В 2017 году мы объявили о выпуске Службы Azure Kubernetes (AKS), которая призвана упростить администрирование, развертывание и эксплуатацию платформы Kubernetes. Если вы используете оркестратор Kubernetes, перейдите на AKS до 31 января 2020 года. Чтобы приступить к работе, см. статью о переходе на Службу Azure Kubernetes.

Дополнительные сведения см. в статье Поддержка Службы контейнеров Azure будет прекращена 31 января 2020 года.

В этом руководстве (часть 1 из 7) выполняется подготовка многоконтейнерного приложения к использованию в Kubernetes. В частности, рассматриваются такие шаги:

  • Клонирование источника приложения из GitHub.
  • Создание образа контейнера из источника приложения.
  • Тестирование приложения в локальной среде Docker.

После выполнения всех действий в вашей локальной среде разработки станет доступным следующее приложение:

Image of Kubernetes cluster on Azure

В последующих руководствах образ контейнера передается в реестр контейнеров Azure, а затем выполняется в кластере Kubernetes, размещенном в Azure.

Подготовка к работе

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

Для работы с этим руководством требуется среда разработки Docker. Docker содержит пакеты, которые позволяют быстро настроить Docker в любой системе Mac, Windows или Linux.

Azure Cloud Shell не включает в себя компоненты Docker, необходимые для выполнения каждого шага этого руководства. Таким образом мы рекомендуем полную среду разработки Docker.

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

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

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

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

Измените каталоги, чтобы использовать клонированный каталог.

cd azure-voting-app-redis

Внутри каталога содержится исходный код приложения, предварительно созданный файл Docker Compose и файл манифеста Kubernetes. Эти файлы используются в руководстве.

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

С помощью Docker Compose можно автоматизировать создание дополнительных образов контейнеров и развертывание многоконтейнерных приложений.

Выполните файл docker-compose.yml, чтобы создать образ контейнера, скачать образ Redis и запустить приложение.

docker-compose up -d

После завершения выполните команду docker images, чтобы увидеть созданные образы.

docker images

Вы увидите, что были скачаны или созданы три образа. Образ azure-vote-front содержит приложение и использует образ nginx-flask в качестве основы. Образ redis используется для запуска экземпляра Redis.

REPOSITORY                   TAG        IMAGE ID            CREATED             SIZE
azure-vote-front             latest     9cc914e25834        40 seconds ago      694MB
redis                        latest     a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask      788ca94b2313        9 months ago        694MB

Выполните команду docker ps , чтобы просмотреть запущенные контейнеры.

docker ps

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

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                           NAMES
82411933e8f9        azure-vote-front  "/usr/bin/supervisord"   57 seconds ago      Up 30 seconds       443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
b68fed4b66b6        redis             "docker-entrypoint..."   57 seconds ago      Up 30 seconds       0.0.0.0:6379->6379/tcp          azure-vote-back

Локальное тестирование приложения

Перейдите к https://localhost:8080, чтобы увидеть работающее приложение.

Image of Kubernetes cluster on Azure

Очистка ресурсов

Теперь, когда функциональные возможности приложения проверены, запущенные контейнеры можно остановить и удалить. Не удаляйте образы контейнеров. Образ azure-vote-front передается в экземпляр реестра контейнеров Azure в следующем руководстве.

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

docker-compose stop

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

docker-compose down

По завершении у вас будет образ контейнера, содержащий приложение Azure Vote.

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

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

  • Клонирование источника приложения из GitHub.
  • Создание образа контейнера из источника приложения.
  • Тестирование приложения в локальной среде Docker.

Переходите к следующему руководству, чтобы узнать о хранении образов контейнеров в реестре контейнеров Azure.