(非推奨) Azure Container Service で使用するコンテナー イメージを作成する

ヒント

Azure Kubernetes Serviceを使用するこのチュートリアルの更新バージョンについては、「チュートリアル: Azure Kubernetes Service (AKS) 用にアプリケーションを準備する」を参照してください。

警告

Azure Container Service (ACS) は非推奨となっています。 ACS に新しい機能が追加されることはありません。 API、ポータルのエクスペリエンス、CLI コマンド、ドキュメントはすべて非推奨としてマークされます。

Azure Kubernetes Service (AKS) は、Kubernetes の管理、デプロイ、および運用を簡素化するために 2017 年に導入されました。 Kubernetes オーケストレーターを使用する場合は、2020 年 1 月 31 日までに AKS に移行してください。 まずは、Azure Kubernetes Service への移行に関するページを参照してください。

詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。

7 つのパートのうちの 1 番目であるこのチュートリアルでは、複数コンテナー アプリケーションを Kubernetes で使用する準備をします。 手順は次のとおりです。

  • GitHub からアプリケーション ソースを複製する
  • アプリケーション ソースからコンテナー イメージを作成する
  • ローカル Docker 環境でアプリケーションをテストする

完了後、次のアプリケーションにローカル開発環境からアクセスできます。

Image of Kubernetes cluster on Azure

後のチュートリアルでは、このコンテナー イメージを Azure Container Registry にアップロードした後、Azure でホストされている Kubernetes クラスターで実行します。

開始する前に

このチュートリアルの前提として、コンテナー、コンテナー イメージ、基本 Docker コマンドなど、Docker のコア概念を基本的に理解している必要があります。 必要な場合は、Docker の入門に関するドキュメントでコンテナーの基礎を参照してください。

このチュートリアルを完了するには、Docker 開発環境が必要です。 Docker では、MacWindows、または Linux システムで Docker を簡単に構成できるパッケージが提供されています。

Azure Cloud Shell には、このチュートリアルの各ステップを完了するのに必要な Docker コンポーネントがすべて含まれているわけではありません。 そのため、完全な Docker 開発環境の使用をお勧めします。

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

このチュートリアルで使うサンプル アプリケーションは、基本的な投票アプリです。 アプリケーションは、フロントエンド Web コンポーネントとバックエンド Redis インスタンスで構成されています。 Web コンポーネントは、カスタム コンテナー イメージにパッケージ化されています。 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 は、コンテナー イメージと複数のコンテナー アプリケーションのデプロイからのビルドを自動化するために使用できます。

コンテナー イメージの作成、Redis イメージのダウンロード、およびアプリケーションの起動を行うために、docker-compose.yml ファイルを実行します。

docker-compose up -d

完了したら、docker images コマンドを使って、作成されたイメージを確認します。

docker images

3 つのイメージがダウンロードまたは作成されたことに注目してください。 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

Output:

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 Container Registry インスタンスにアップロードされます。

実行中のコンテナーを停止するには、次を実行します。

docker-compose stop

次のコマンドで、停止しているコンテナーとリソースを削除します。

docker-compose down

完了すると、Azure Vote アプリケーションを含むコンテナー イメージが完成します。

次のステップ

このチュートリアルでは、アプリケーションをテストし、アプリケーション用のコンテナー イメージを作成しました。 次の手順を完了しました。

  • GitHub からアプリケーション ソースを複製する
  • アプリケーション ソースからコンテナー イメージを作成する
  • ローカル Docker 環境でアプリケーションアプリケーションをテストする

次のチュートリアルでは、Azure Container Registry にコンテナー イメージを格納する方法について学習します。