Compute Engine への Docker コンテナのデプロイ

このページでは、Docker イメージを Google Compute Engine 仮想マシン インスタンスおよびマネージド インスタンス グループにデプロイする方法について説明します。

Docker コンテナは仮想マシン インスタンスと仮想マシン(VM)インスタンス グループのどちらにもデプロイできます。Docker コンテナを Compute Engine インスタンス上で直接実行すると、次の操作を実行することができます。

  • 既存の Compute Engine の設定の上に Docker を使用してソフトウェアをデプロイする。
  • 仮想マシン インスタンスの自動スケーリング、負荷分散、推奨サイズ設定などの Compute Engine の機能を利用する。
  • 仮想マシン インスタンスのアクセスとセキュリティを個別に制御する。

デプロイにのみコンテナを使用しても、VM インスタンス レベルで引き続きアプリケーションの制御と管理を行う場合に Compute Engine 上で Docker コンテナを実行してください。また、Google Kubernetes Engine を使用してクラスタ管理とコンテナ オーケストレーションのタスクを簡素化することもできます。Google Kubernetes Engineを使用すると、すべてをコンテナレベルで管理できるため、基盤となる仮想マシン インスタンスを管理する必要がなくなります。

始める前に

アルファ版の制限

アルファ版では、この機能に次の制限があります。

  • 複数のコンテナのデプロイはサポートされていません。
  • 仮想マシン インスタンスにコンテナ更新のメカニズムはありません。
  • この機能に API はありません。

単一の仮想マシン インスタンスへ Docker イメージをデプロイする

Docker イメージを新しい VM インスタンスにデプロイするには、API Console か gcloud コマンドライン ツールを使用します。

次の例では、Google の Nginx(gcr.io/google-containers/nginx)Docker イメージを VM インスタンスにデプロイしています。その他の Docker イメージをデプロイする場合は、下記の例で gcr.io/google-containers/nginx:latest の代わりに必要な Docker イメージを指定してください。

Console

  1. API Console で、[インスタンス] ページに移動します。

    [インスタンス] ページに移動

  2. [インスタンスを作成] ボタンをクリックして新しいインスタンスを作成します。
  3. [Docker コンテナを実行する VM インスタンスの作成] をオンにします。
  4. コンテナ イメージ gcr.io/google-containers/nginx:latest を指定します。
  5. [ポートを追加] ボタンをクリックしてポート マッピングを指定し、次のデータを指定します。
    • ポート: 80
    • ターゲット ポート: 80
    • プロトコル: TCP
  6. [HTTP トラフィックを許可する] をオンにして、適切なファイアウォールを設定します。
  7. [作成] をクリックします。

gcloud

gcloud コマンドライン ツールで、instances create-from-container サブコマンドを使用します。

gcloud alpha compute instances create-from-container nginx-vm \
    --docker-image=gcr.io/google-containers/nginx:latest \
    --port-mappings=80:80:TCP

新しいマネージド インスタンス グループへ Docker イメージをデプロイする

Docker イメージをマネージド インスタンス グループにデプロイするには、Google API Console を使用するか、gcloud コマンドライン ツールを使用します。

Docker イメージを新しいマネージド インスタンス グループにデプロイするには、最初に Docker イメージ用の特別なインスタンス テンプレートを作成し、それを使用してマネージド インスタンス グループを作成します。次の手順で、インスタンス テンプレートとマネージド インスタンス グループの両方を作成します。

次の例では、Google の Nginx(gcr.io/google-containers/nginx)Docker イメージをマネージド インスタンス グループにデプロイしています。その他の Docker イメージをデプロイする場合は、下記の例で gcr.io/google-containers/nginx:latest の代わりに必要な Docker イメージを指定してください。

Console

  1. API Console の [インスタンス グループ] ページに移動します。

    [インスタンス グループ] ページに移動

  2. [インスタンス グループを作成] ボタンをクリックして新しいインスタンス グループを作成します。
  3. [インスタンス テンプレート] で、[別のインスタンス テンプレートを作成] を選択します。新しいページが表示されます。
  4. [Docker コンテナを実行するインスタンス テンプレートを作成する] をオンにします。
  5. コンテナ イメージ gcr.io/google-containers/nginx:latest を指定します。
  6. [ポートを追加] ボタンをクリックしてポート マッピングを指定し、次のデータを指定します。
    • ポート: 80
    • ターゲット ポート: 80
    • プロトコル: TCP
  7. [HTTP トラフィックを許可する] をオンにして、適切なファイアウォールを設定します。
  8. [保存して次へ] をクリックします。必要に応じて、インスタンス グループの他のプロパティの指定を続けます。
  9. [作成] をクリックしてインスタンス グループを作成します。

gcloud

Docker イメージ用の特別なインスタンス テンプレートを作成するには、instance-template create-from-container サブコマンドを使用します。

gcloud alpha compute instance-templates create-from-container nginx-template \
    --docker-image=gcr.io/google-containers/nginx:latest \
    --port-mappings=80:80:TCP

このコマンドは gcr.io/google-containers/nginx image. イメージを実行するインスタンス テンプレートを作成します。 このテンプレートで作成したインスタンスは、ポート 80 からの TCP トラフィックをコンテナで公開されたポート 80 に転送します。次に、このインスタンス テンプレートを使用して新しいインスタンス グループを作成します。次に例を示します。

gcloud compute instance-groups managed create nginx-group \
  --template=nginx-template \
  --size=1

サポートとフィードバック

アルファ プログラムでは、アルファ メーリング リストにメールでフィードバックやサポート依頼を送信することができます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント