次の方法で共有


チュートリアル: Linux Service Fabric クラスター上にコンテナー イメージを作成する

このチュートリアルは、Linux Service Fabric クラスター内のコンテナーの使い方を実演するるチュートリアル シリーズの第 1 部です。 このチュートリアルでは、複数コンテナーのアプリケーションを Service Fabric で使うことができるように準備します。 以降のチュートリアルでは、これらのイメージを Service Fabric アプリケーションの一部として使います。 このチュートリアルで学習する内容は次のとおりです。

  • GitHub からアプリケーション ソースを複製する
  • アプリケーション ソースからコンテナー イメージを作成する
  • Azure Container Registry (ACR) インスタンスをデプロイする
  • ACR のコンテナー イメージにタグを付ける
  • イメージを ACR にアップロードする

このチュートリアル シリーズで学習する内容は次のとおりです。

前提条件

  • Service Fabric 用に設定された Linux 開発環境。 こちらの説明に従って、Linux 環境を設定します。
  • このチュートリアルでは、Azure CLI バージョン 2.0.4 以降を実行している必要があります。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。
  • さらに、使用可能な Azure サブスクリプションを持っている必要があります。 無料試用版について詳しくは、こちらをご覧ください。

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

このチュートリアルで使うサンプル アプリケーションは投票アプリです。 アプリケーションは、フロントエンド Web コンポーネントとバックエンド Redis インスタンスで構成されています。 コンポーネントは、コンテナー イメージにパッケージ化されています。

アプリケーションのコピーを開発環境にダウンロードするには、git を使います。

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

ソリューションには 2 つのフォルダーと 'docker-compose.yml' ファイルが含まれています。 'azure-vote'フォルダーには、イメージのビルドに使用される Dockerfile と共に Python フロントエンド サービスが格納されています。 'Voting' ディレクトリには、クラスターにデプロイされる Service Fabric アプリケーション パッケージが含まれています。 これらのディレクトリには、このチュートリアルに必要な資産が含まれています。

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

azure-vote ディレクトリ内で次のコマンドを実行して、フロントエンド Web コンポーネントのイメージをビルドします。 このコマンドは、このディレクトリ内の Dockerfile を使ってイメージをビルドします。

docker build -t azure-vote-front .

Note

アクセス許可が拒否される場合、sudo なしで Docker を操作する方法に関するこのドキュメントに従います。

このコマンドは、必要なすべての依存関係を Docker Hub からプルする必要があるため、時間がかかる場合があります。 完了したら、作成した azure-vote-front イメージを docker images コマンドを使って確認します。

docker images

Azure Container Registry のデプロイ

最初に、az login コマンドを実行して Azure アカウントにサインインします。

az login

次に、az account コマンドを使って、Azure Container Registry を作成するためのサブスクリプションを選びます。 <subscription_id> には、お使いの Azure サブスクリプションのサブスクリプション ID を入力する必要があります。

az account set --subscription <subscription_id>

Azure Container Registry をデプロイする場合、まず、リソース グループが必要です。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

az group create コマンドを使用して、リソース グループを作成します。 この例では、myResourceGroup という名前のリソース グループが westus リージョンに作成されます。

az group create --name <myResourceGroup> --location westus

az acr create コマンドで Azure Container Registry を作成します。 <acrName> は、お使いのサブスクリプション下に作成するコンテナー レジストリの名前に置き換える必要があります。 この名前は、英数字を使用して一意にする必要があります。

az acr create --resource-group <myResourceGroup> --name <acrName> --sku Basic --admin-enabled true

このチュートリアルの残りの部分では、選択したコンテナー レジストリ名のプレースホルダーとして「acrName」を使用します。 この値をメモしておいてください。

コンテナー レジストリにサインインする

イメージをプッシュする前に、ACR のインスタンスにサインインします。 az acr login コマンドを使用して、操作を完了します。 コンテナー レジストリの作成時に割り当てられた一意名を入力します。

az acr login --name <acrName>

このコマンドは、完了すると 'Login Succeeded’(ログインに成功しました) というメッセージを返します。

コンテナー イメージのタグ付け

各コンテナー イメージは、レジストリの名前 loginServer でタグ付けする必要があります。 このタグは、イメージ レジストリにコンテナー イメージをプッシュするときに、ルーティングするために使用されます。

現在のイメージの一覧を表示するには、docker images コマンドを使用します。

docker images

出力:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

loginServer 名を取得するには、次のコマンドを実行します。

az acr show --name <acrName> --query loginServer --output table

これにより、以下のような結果がテーブルに出力されます。 この結果は、次の手順でコンテナー レジストリにプッシュする前に、azure-vote-front イメージのタグ付けに使用されます。

Result
------------------
<acrName>.azurecr.io

ここでは、azure-vote-front イメージにお使いのコンテナー レジストリの loginServer をタグ付けします。 また、イメージ名の末尾に :v1 を付加します。 このタグは、イメージのバージョンを示します。

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

タグを付けた後、"docker images" を実行して動作を確認します。

出力:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

イメージをレジストリにプッシュ

azure-vote-front イメージをレジストリにプッシュします。

次の例を使用して、ACR loginServer 名を環境の loginServer に置き換えます。

docker push <acrName>.azurecr.io/azure-vote-front:v1

docker push コマンドが完了までに数分かかります。

レジストリ内のイメージの一覧表示

お使いの Azure Container Registry にプッシュされたイメージの一覧を返すには、az acr repository list コマンドを使用します。 ACR のインスタンス名でコマンドを更新します。

az acr repository list --name <acrName> --output table

出力:

Result
----------------
azure-vote-front

チュートリアル完了時には、コンテナー イメージがプライベートの Azure Container Registry インスタンスに格納されています。 このイメージは、以降のチュートリアルで、ACR から Service Fabric クラスターにデプロイされます。

次のステップ

このチュートリアルでは、アプリケーションを GitHub から取得し、コンテナー イメージを作成して、レジストリにプッシュしました。 次の手順を完了しました。

  • GitHub からアプリケーション ソースを複製する
  • アプリケーション ソースからコンテナー イメージを作成する
  • Azure Container Registry (ACR) インスタンスをデプロイする
  • ACR のコンテナー イメージにタグを付ける
  • イメージを ACR にアップロードする

次のチュートリアルに進み、Yeoman を使ってコンテナーを Service Fabric アプリケーションにパッケージ化する方法を学習してください。