チュートリアル: Azure Kubernetes Service (AKS) 用のアプリケーションの準備Tutorial: Prepare an application for Azure Kubernetes Service (AKS)

7 つのパートのうちの 1 番目であるこのチュートリアルでは、複数コンテナー アプリケーションを Kubernetes で使用する準備をします。In this tutorial, part one of seven, a multi-container application is prepared for use in Kubernetes. Docker Compose などの既存の開発ツールは、アプリケーションをローカルでビルドしてテストするために使用されます。Existing development tools such as Docker Compose are used to locally build and test an application. 学習内容は次のとおりです。You learn how to:

  • GitHub からサンプル アプリケーション ソースを複製するClone a sample application source from GitHub
  • サンプル アプリケーション ソースからコンテナー イメージを作成するCreate a container image from the sample application source
  • ローカル Docker 環境で複数コンテナー アプリケーションをテストするTest the multi-container application in a local Docker environment

完了後、次のアプリケーションがローカル開発環境で実行されます。Once completed, the following application runs in your local development environment:

ローカル Web ブラウザーで開かれた、ローカルで実行されている Azure 投票アプリのコンテナー イメージを示すスクリーンショット

後続のチュートリアルでは、このコンテナー イメージが Azure Container Registry にアップロードされ、AKS クラスターにデプロイされます。In later tutorials, the container image is uploaded to an Azure Container Registry, and then deployed into an AKS cluster.

開始する前にBefore you begin

このチュートリアルの前提として、コンテナー、コンテナー イメージ、docker コマンドなど、Docker のコア概念を基本的に理解している必要があります。This tutorial assumes a basic understanding of core Docker concepts such as containers, container images, and docker commands. Docker の入門に関するドキュメントでコンテナーの基礎についての入門情報を参照してください。For a primer on container basics, see Get started with Docker.

このチュートリアルを完了するには、Linux コンテナーを実行するローカルの Docker 開発環境が必要です。To complete this tutorial, you need a local Docker development environment running Linux containers. Docker では、MacWindows、または Linux システム上に Docker を構成するパッケージが提供されています。Docker provides packages that configure Docker on a Mac, Windows, or Linux system.

注意

Azure Cloud Shell には、これらのチュートリアルのすべてのステップを完了するために必要な Docker コンポーネントが含まれているわけではありません。Azure Cloud Shell does not include the Docker components required to complete every step in these tutorials. そのため、完全な Docker 開発環境の使用をお勧めします。Therefore, we recommend using a full Docker development environment.

アプリケーションのコードを入手するGet application code

このチュートリアルで使用するサンプル アプリケーションは、フロントエンド Web コンポーネントとバックエンド Redis インスタンスで構成される基本的な投票アプリです。The sample application used in this tutorial is a basic voting app consisting of a front-end web component and a back-end Redis instance. Web コンポーネントは、カスタム コンテナー イメージにパッケージ化されています。The web component is packaged into a custom container image. Redis インスタンスでは、Docker Hub から変更されていないイメージを使用します。The Redis instance uses an unmodified image from Docker Hub.

サンプル アプリケーションを開発環境に複製するには、git を使用します。Use git to clone the sample application to your development environment:

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

複製されたディレクトリに移動します。Change into the cloned directory.

cd azure-voting-app-redis

ディレクトリ内には、アプリケーションのソース コード、事前作成された Docker Compose ファイル、および Kubernetes マニフェスト ファイルがあります。Inside the directory is the application source code, a pre-created Docker compose file, and a Kubernetes manifest file. これらのファイルは、チュートリアル セット全体で使用されます。These files are used throughout the tutorial set. ディレクトリの内容と構造は次のとおりです。The contents and structure of the directory are as follows:

azure-voting-app-redis
│   azure-vote-all-in-one-redis.yaml
│   docker-compose.yaml
│   LICENSE
│   README.md
│
├───azure-vote
│   │   app_init.supervisord.conf
│   │   Dockerfile
│   │   Dockerfile-for-app-service
│   │   sshd_config
│   │
│   └───azure-vote
│       │   config_file.cfg
│       │   main.py
│       │
│       ├───static
│       │       default.css
│       │
│       └───templates
│               index.html
│
└───jenkins-tutorial
        config-jenkins.sh
        deploy-jenkins-vm.sh

コンテナー イメージを作成するCreate container images

Docker Compose は、コンテナー イメージのビルドと複数コンテナー アプリケーションのデプロイとを自動化するために使用することができます。Docker Compose can be used to automate building container images and the deployment of multi-container applications.

コンテナー イメージの作成、Redis イメージのダウンロード、およびアプリケーションの起動を行うために、docker-compose.yaml サンプル ファイルを実行します。Use the sample docker-compose.yaml file to create the container image, download the Redis image, and start the application:

docker-compose up -d

完了したら、docker images コマンドを使って、作成されたイメージを確認します。When completed, use the docker images command to see the created images. 3 つのイメージがダウンロードまたは作成されていることを確認してください。Three images have been downloaded or created. azure-vote-front イメージにはフロントエンド アプリケーションが含まれており、ベースとして nginx-flask イメージが使用されます。The azure-vote-front image contains the front-end application and uses the nginx-flask image as a base. redis イメージは、Redis インスタンスを起動するために使用されます。The redis image is used to start a Redis instance.

$ docker images

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front   v1                  84b41c268ad9        9 seconds ago       944MB
mcr.microsoft.com/oss/bitnami/redis            6.0.8               3a54a920bb6c        2 days ago          103MB
tiangolo/uwsgi-nginx-flask                     python3.6           a16ce562e863        6 weeks ago         944MB

docker ps コマンドを実行して、実行中のコンテナーを確認します。Run the docker ps command to see the running containers:

$ docker ps

CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                           NAMES
d10e5244f237        mcr.microsoft.com/azuredocs/azure-vote-front:v1   "/entrypoint.sh /sta…"   3 minutes ago       Up 3 minutes        443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
21574cb38c1f        mcr.microsoft.com/oss/bitnami/redis:6.0.8         "/opt/bitnami/script…"   3 minutes ago       Up 3 minutes        0.0.0.0:6379->6379/tcp          azure-vote-back

ローカルでアプリケーションをテストするTest application locally

実行中のアプリケーションを表示するには、ローカルの Web ブラウザーで「 http://localhost:8080」と入力します。To see the running application, enter http://localhost:8080 in a local web browser. 次の例で示すように、サンプル アプリケーションが読み込まれます。The sample application loads, as shown in the following example:

ローカル Web ブラウザーで開かれた、ローカルで実行されている Azure 投票アプリのコンテナー イメージを示すスクリーンショット

リソースをクリーンアップするClean up resources

アプリケーションの機能を検証したので、実行中のコンテナーを停止して削除できます。Now that the application's functionality has been validated, the running containers can be stopped and removed. コンテナー イメージを削除しないでください _。次のチュートリアルで、_azure-vote-front イメージは Azure Container Registry インスタンスにアップロードされます。 Do not delete the container images _ - in the next tutorial, the _azure-vote-front image is uploaded to an Azure Container Registry instance.

docker-compose down コマンドを使用して、コンテナー インスタンスとリソースを停止して削除します。Stop and remove the container instances and resources with the docker-compose down command:

docker-compose down

ローカル アプリケーションが削除されると、Azure Vote アプリケーション azure-vote-front を含む Docker イメージが作成され、次のチュートリアルで使用できます。When the local application has been removed, you have a Docker image that contains the Azure Vote application, azure-vote-front, for use with the next tutorial.

次のステップNext steps

このチュートリアルでは、アプリケーションをテストし、アプリケーション用のコンテナー イメージを作成しました。In this tutorial, an application was tested and container images created for the application. 以下の方法を学習しました。You learned how to:

  • GitHub からサンプル アプリケーション ソースを複製するClone a sample application source from GitHub
  • サンプル アプリケーション ソースからコンテナー イメージを作成するCreate a container image from the sample application source
  • ローカル Docker 環境で複数コンテナー アプリケーションをテストするTest the multi-container application in a local Docker environment

次のチュートリアルでは、Azure Container Registry にコンテナー イメージを格納する方法について学習します。Advance to the next tutorial to learn how to store container images in Azure Container Registry.