VM およびマネージド インスタンス グループへのコンテナのデプロイ

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

Compute Engine VM またはマネージド インスタンス グループにコンテナをデプロイして起動するには、VM またはインスタンス テンプレートの作成時に Docker イメージ名を指定し、コンテナを実行する方法を構成します。Docker がインストールされた最新の Container-Optimized OS(COS) イメージの提供、VM の起動時のコンテナの起動など、残りの部分は Compute Engine が処理します。VM にコンテナをデプロイする利点の詳細については、下記の VM およびインスタンス グループへのコンテナのデプロイを選択するをご覧ください。

始める前に

VM およびインスタンス グループへのコンテナのデプロイを選択する

Compute Engine にコンテナをデプロイすることで、VM インフラストラクチャを調整しながらアプリケーションのデプロイの簡素化を実現できます。

  • コンテナを実行する VM の管理は、Compute Engine インフラストラクチャの構成や管理に他の VM を扱う場合と同じように行います。
  • コンテナを実行するマネージド インスタンス グループを使用して、自動スケーリング、自動修復、ローリング更新、マルチゾーンのデプロイ、負荷分散などの機能を提供するスケーラブルなサービスを構築します。
  • コンテナをデプロイした VM の管理にも、gcloud コマンドライン ツールや Compute Engine API など、使い慣れたプロセスやツールを使用できます。

以下のような必要がある場合は Kubernetes Engine へのデプロイを検討されることをおすすめします。

  • マイクロサービスを大量に実行する
  • コンテナの起動時間を短縮する
  • 自動アップグレード、ノードの自動修復、オートスケーリングを含む Kubernetes 自動オーケストレーションを活用する

Compute Engine の VM ごとに個別のマイクロサービスを実行すると、コストの大部分をオペレーティング システムのオーバーヘッドが占める可能性が生じます。Kubernetes Engine を使用すると、各 VM インスタンスに複数のコンテナやコンテナ グループをデプロイできます。これにより、マイクロサービスのフットプリントが小さくなり、ホスト VM の利用効率が向上します。

Compute Engine へのコンテナのデプロイの仕組み

Compute Engine の VM インスタンスにソフトウェアをデプロイする一般的な方法は次のとおりです。

  • 起動スクリプトまたは cloud-init を使用して、VM の起動時にソフトウェアをデプロイする。
  • ソフトウェアがプリインストールされたカスタム ブートディスク イメージを作成する。

上記のどちらの方法も、アプリケーションの構成タスクとホスト オペレーティング システム環境の設定タスクが組み込まれています。デベロッパーは、ランタイムの依存関係を慎重に追跡管理し、解決する必要があります。たとえば、VM で実行される 2 つのアプリケーションが同じライブラリの異なるバージョンを使用する場合は、両方のバージョンをインストールし、システム変数で参照する必要があります。

アプリケーションがホスト オペレーティング システムに直接デプロイされた VM インスタンス

上記の方法とは別に、コンテナにソフトウェアをデプロイし、VM インスタンスまたはマネージド インスタンス グループにコンテナを直接デプロイすることもできます。この場合、各コンテナにはアプリケーション ソフトウェアと必要なライブラリの両方が含まれ、ホスト OS のアプリケーションやライブラリからは切り離されています。コンテナはデプロイ環境間を簡単に移動でき、コンテナとホスト OS 間でライブラリ バージョンの競合を解決する必要もありません。

アプリケーションがコンテナにデプロイされている VM インスタンス

Compute Engine にコンテナをデプロイするプロセスは次のとおりです。

  1. アプリケーションと必要なライブラリを Docker イメージにバンドルし、そのイメージを Container Registry に公開します(または Docker Hub や他のレジストリに一般公開します)。
  2. VM インスタンスまたはマネージド インスタンス グループのインスタンス テンプレートを作成するときに、Docker イメージ名と docker run 構成を指定します。

VM インスタンスまたはインスタンス テンプレートの作成をリクエストすると、Compute Engine によって次のタスクが実行されます。

  1. Google が提供する Container-Optimized OS イメージを使用して、VM インスタンスまたはインスタンス テンプレートを作成します。このイメージには、コンテナの起動に必要な Docker ランタイムと追加のソフトウェアが含まれています。
  2. コンテナの設定をインスタンス メタデータgce-container-declaration メタデータキーに保存します。
  3. Container-Optimized OS イメージは、インスタンスのメタデータに保存された docker run コマンド構成を使用して、VM の起動時にリポジトリからコンテナ イメージを pull し、コンテナを起動します。
コンテナを実行する VM インスタンスまたはマネージド インスタンス グループを作成する手順

制限事項

  • 各 VM インスタンスにデプロイできるコンテナは 1 つのみです。1 つの VM インスタンスに複数のコンテナをデプロイする必要がある場合は、Kubernetes Engine を検討してください。
  • このデプロイ方法で使用できるのは、Container-Optimized OS イメージのみです。
  • これは Google Cloud Platform Console または gcloud コマンドライン ツールからのみ実行できる機能です。

デプロイのためのコンテナの準備

次のいずれかの方法を選択して、Compute Engine がコンテナ イメージにアクセスできるようにします。

  • Docker イメージを Google Container Registry にアップロードします。
  • Docker Hub や他のレジストリで一般公開されているコンテナ イメージを使用します。

新しい VM インスタンスへのコンテナのデプロイ

新しい VM インスタンスにコンテナをデプロイするには、Google Cloud Platform Console または gcloud コマンドライン ツールを使用します。

Console

次の例では、Google 提供の Nginx(gcr.io/cloud-marketplace/google/nginx1:1.12)Docker イメージから VM インスタンスにコンテナをデプロイします。別の Docker イメージを使用するには、下記の例の gcr.io/cloud-marketplace/google/nginx1:1.12 の代わりに目的のイメージを指定します。

  1. [VM インスタンス] ページに移動します。

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

  2. [インスタンスを作成] ボタンをクリックして新しいインスタンスを作成します。
  3. [コンテナ] セクションで、[この VM インスタンスにコンテナ イメージをデプロイします] をオンにします。
  4. [コンテナ イメージ] でコンテナ イメージ名を指定し、必要に応じてコンテナの実行オプションを構成します。たとえば、コンテナ イメージに gcr.io/cloud-marketplace/google/nginx1:1.12 を指定できます。
  5. [作成] をクリックします。

gcloud

gcloud compute instances create-with-container コマンドを使用します。

 gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [DOCKER_IMAGE]

たとえば、次のコマンドでは、Docker イメージ gcr.io/cloud-marketplace/google/nginx1:1.12 を起動して実行する nginx-vm という名前の新しい VM インスタンスが作成されます。

 gcloud compute instances create-with-container nginx-vm \
     --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

詳細については、gcloud compute instances create-with-container コマンドをご覧ください。

Docker Hub の公開イメージを使用する場合は、常に完全な Docker イメージ名を指定する必要があります。たとえば、Apache コンテナ イメージをデプロイするには、次のイメージ名を指定します。

docker.io/httpd:2.4

VM インスタンスのコンテナの更新

VM インスタンスのコンテナで実行されている Docker イメージや実行オプションの構成を更新するには、Google Cloud Platform Console または gcloud コマンドライン ツールを使用します。

コンテナを実行する VM が更新されると、Compute Engine は次の 2 つの手順を実行します。

  • インスタンスのコンテナ宣言を更新します。更新されたコンテナ宣言をインスタンス メタデータgce-container-declaration メタデータキーに保存します。
  • インスタンスが実行されている場合は、インスタンスを停止して再起動し、更新した構成を有効にします。インスタンスが停止している場合は、コンテナ宣言を更新し、インスタンスを停止したままにします。VM インスタンスは、VM の起動時に新しいイメージをダウンロードして、コンテナを起動します。

Console

  1. [VM インスタンス] ページに移動します。

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

  2. 更新が必要なインスタンスの名前をクリックします。
  3. インスタンスの詳細ページで [編集] をクリックします。
  4. 新しいコンテナ イメージを指定し、必要に応じてコンテナの実行オプションを更新します。
  5. [保存して再起動] をクリックして変更を保存します。Compute Engine は変更を保存し、インスタンスを自動的に再起動して更新を実行します。VM が再起動すると、新しいイメージをダウンロードし、構成を更新してコンテナを起動します。

gcloud

gcloud compute instances update-container コマンドを使用してコンテナ宣言を更新します。次に例を示します。

gcloud compute instances update-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.13

このコマンドは、コンテナ イメージを gcr.io/cloud-marketplace/google/nginx1:1.13 に設定し、インスタンスを再起動して変更を有効にします。また、コンテナの実行オプションの構成で説明されているプロパティに対応するフラグを追加して、設定を更新できます。

インスタンスが再起動すると、新しいコンテナ イメージをダウンロードして、新しい構成でコンテナを起動します。

マネージド インスタンス グループへのコンテナのデプロイ

新しいマネージド インスタンス グループにコンテナをデプロイするには、Google Cloud Platform Console または gcloud コマンドライン ツールを使用します。手順は次のとおりです。

  1. Docker イメージに基づいてインスタンス テンプレートを作成します。
  2. 新しいインスタンス テンプレートからマネージド インスタンス グループを作成します。

Console

次の例では、Google 提供の Nginx(gcr.io/cloud-marketplace/google/nginx1:1.12)Docker イメージからマネージド インスタンス グループにコンテナをデプロイするインスタンス テンプレートを作成します。他の Docker イメージを使用するには、下記の例の gcr.io/cloud-marketplace/google/nginx1:1.12 の代わりに目的のイメージを指定します。

  1. [インスタンス テンプレート] ページに移動します。

    [インスタンス テンプレート] ページに移動

  2. [インスタンス テンプレートを作成] ボタンをクリックして新しいインスタンス テンプレートを作成します。
  3. [コンテナ] セクションで、[この VM インスタンスにコンテナ イメージをデプロイします] をオンにします。
  4. [コンテナ イメージ] で Docker イメージ名を指定し、必要に応じてコンテナの実行オプションを構成します。たとえば、コンテナ イメージに gcr.io/cloud-marketplace/google/nginx1:1.12 を指定できます。
  5. [作成] をクリックします。

次に、新しいインスタンス テンプレートを使用して、マネージド インスタンス グループを作成します。

gcloud

gcloud compute instance-templates create-with-container コマンドを使用して、Docker イメージを実行するためのインスタンス テンプレートを作成します。

 gcloud compute instance-templates create-with-container [TEMPLATE_NAME] \
 --container-image [DOCKER_IMAGE]

必要に応じて、コンテナの実行オプションを構成することもできます。

たとえば、次のコマンドは、Docker イメージに関する情報を含む nginx-template という名前の新しいインスタンス テンプレートを作成します。このテンプレートから作成された VM インスタンスは、起動時に Docker イメージ gcr.io/cloud-marketplace/google/nginx1:1.12 を起動して実行します。

 gcloud compute instance-templates create-with-container nginx-template \
     --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

次に、新しいインスタンス テンプレートを使用して、マネージド インスタンス グループを作成します。

これでインスタンス テンプレートが作成されたので、そのインスタンス テンプレートを使用してマネージド インスタンス グループを作成できます。たとえば、gcloud ツールを使用して、作成した nginx-template テンプレートからマネージド インスタンス グループを作成するには、次のコマンドを実行します。

gcloud compute instance-groups managed create example-group \
    --base-instance-name nginx-vm \
    --size 3 \
    --template nginx-template

コンテナを実行しているマネージド インスタンス グループの更新

新しいバージョンの Docker イメージまたは Container-Optimized OS イメージをデプロイするには、マネージド インスタンス グループを更新します。

マネージド インスタンス グループのコンテナ イメージを新しいバージョンに更新する

Managed Instance Group Updater を使用して、新しいバージョンの Docker イメージをマネージド インスタンス グループにデプロイするには、次の 3 つの手順に沿って操作します。

  1. デプロイ用の新しい Docker イメージを準備します。
  2. コンテナベースのテンプレートを作成するのと同じ方法で、新しい Docker イメージに基づいてインスタンス テンプレートを作成します。
  3. Managed Instance Group Updater を使用して、新しいインスタンス テンプレートでマネージド インスタンス グループを更新します。

マネージド インスタンス グループの Container-Optimized OS イメージを新しいバージョンに更新する

Google では Container-Optimized OS イメージを定期的に更新しています。これらの更新を Docker イメージを変更せずに、コンテナ化されたマネージド インスタンス グループに適用できます。Google Cloud Platform Console または gcloud コマンドライン ツールを使用して、次の 2 つの手順でマネージド インスタンス グループを新しいバージョンの Container-Optimized OS イメージに更新できます。

  1. 新しいマネージド インスタンス グループのコンテナベースのテンプレートを作成するのと同じ方法で、現在のバージョンの Docker イメージに基づいてインスタンス テンプレートを作成します。サポートされている最新バージョンの Container-Optimized OS イメージがデフォルトで使用されます。
  2. Managed Instance Group Updater を使用して、新しいインスタンス テンプレートでマネージド インスタンス グループを更新します。

SSH を使用したコンテナへの接続

SSH を使用して VM 上のコンテナに接続できます。gcloud ツールを使用し、--container フラグを指定して gcloud compute ssh コマンドを実行します。

gcloud compute ssh [INSTANCE_NAME] \
   --container [CONTAINER_NAME]

ここで

  • [INSTANCE_NAME] は VM インスタンスの名前です。
  • [CONTAINER_NAME] はコンテナの名前です。

gcloud compute ssh コマンドとその引数の詳細をご覧ください。

ログの表示

コンテナに関連する次の 3 種類のログを表示できます。

  1. 起動エージェントのログkonlet ログとも呼ばれます)。起動エージェントはコンテナの構成を解析し、Compute Engine VM インスタンスでコンテナを起動するタスクを実行します。

  2. Docker イベントログ。コンテナの開始イベントと停止イベントなどのコンテナ イベントをレポートします。このログは COS 69 以降を使用している場合に利用できます。

  3. コンテナからのログ。コンテナ内で実行されるアプリケーションの STDOUT を含みます。

起動エージェントのログの表示

起動エージェントのログは、シリアル コンソール内、OS イメージに含まれる journald システム サービス、または Stackdriver Logging で表示できます。

シリアル コンソールので起動エージェントのログの表示

Console

  1. [VM インスタンス] ページに移動します。

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

  2. 起動エージェントのログを表示する VM インスタンスを選択します。
  3. [ログ] の下の [シリアルポート 1(コンソール)] をクリックして、シリアル コンソールのログを表示します。

gcloud

インスタンスのシリアルポートのログを表示するには、get-serial-port-output コマンドを使用します。

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

ここで、[INSTANCE_NAME] は VM インスタンスの名前です。

たとえば、次のコマンドを使用すると、nginx-vm という VM インスタンスのシリアルポート出力が表示されます。

gcloud compute instances get-serial-port-output nginx-vm

journald での起動エージェントのログの表示

  1. SSH を使用してコンテナを含むインスタンスに接続します。
  2. sudo journalctl コマンドを実行して、VM の起動ログとコンテナの起動ログを表示します。コンテナの起動エージェント ログ(konlet)をフィルタリングするには、次のコマンドを使用します。

    sudo journalctl -u konlet*
    

Stackdriver での起動エージェントのログの表示

Console

  1. [VM インスタンス] ページに移動します。

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

  2. 起動エージェントのログを表示する VM インスタンスを選択します。
  3. [ログ] で [Stackdriver Logging] をクリックして、Stackdriver のログを表示します。

  4. 検索フィルタを入力して、起動エージェント ログを取得します。

    COS 68 以前を使用している場合は、次のフィルタを使用します。

    resource.type="global"
    logName="projects/[PROJECT_ID]/logs/gcplogs-docker-driver"
    jsonPayload.container.imageName:"gcr.io/gce-containers/konlet"
    jsonPayload.instance.name="[INSTANCE_NAME]"
    

    COS 69 以降を使用している場合は、次のフィルタを使用します。

    resource.type="gce_instance"
    logName="projects/[PROJECT_ID]/logs/cos_system"
    jsonPayload.SYSLOG_IDENTIFIER="konlet-startup"
    jsonPayload._HOSTNAME="[INSTANCE_NAME]"
    

    ここで

    • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
    • [INSTANCE_NAME] は、ログを取得するインスタンスの名前です。

gcloud

コンテナの起動エージェント ログを表示するには、gcloud logging read コマンドを適切なフィルタとともに使用します。

COS 68 以前を使用している場合は、次のコマンドとフィルタを使用します。

gcloud logging read "resource.type=global AND \
    logName=projects/[PROJECT_ID]/logs/gcplogs-docker-driver AND \
    jsonPayload.instance.name=[INSTANCE_NAME]"

COS 69 以降を使用している場合は、次のコマンドとフィルタを使用します。

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/[PROJECT_ID]/logs/cos_system AND \
    jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \
    jsonPayload._HOSTNAME=[INSTANCE_NAME]"

ここで

  • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
  • [INSTANCE_NAME] は、ログを取得するインスタンスの名前です。

たとえば、my-project に存在し、COS 70 を実行している nginx-vm という名前の VM インスタンスの最新 10 件の起動エージェント ログを Stackdriver で表示するには、次のコマンドを使用します。

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/my-project/logs/cos_system AND \
    jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \
    jsonPayload._HOSTNAME=nginx-vm" \
    --limit 10

Docker イベントログの表示

COS 69 以降では、journald と Stackdriver で Docker イベントログを表示できます。

journald での Docker イベントログの表示

  1. SSH を使用してコンテナを含むインスタンスに接続します。
  2. 次のフィルタを使用して sudo journalctl コマンドを実行し、Docker イベントログを表示します。

    sudo journalctl -u docker-events-collector
    

Stackdriver での Docker イベントログの表示

Console

  1. [VM インスタンス] ページに移動します。

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

  2. 起動エージェントのログを表示する VM インスタンスを選択します。
  3. [ログ] で [Stackdriver Logging] をクリックして、Stackdriver のログを表示します。

  4. 次の検索フィルタを入力して、Docker イベントログを取得します。

    resource.type="gce_instance"
    logName="projects/[PROJECT_ID]/logs/cos_system"
    jsonPayload._HOSTNAME="[INSTANCE_NAME]"
    jsonPayload.SYSLOG_IDENTIFIER="docker"
    

    ここで

    • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
    • [INSTANCE_NAME] は、ログを取得するインスタンスの名前です。

gcloud

Docker イベントログを表示するには、gcloud logging read コマンドを適切なフィルタとともに使用します。

gcloud logging read "resource.type=gce_instance AND \
      logName=projects/[PROJECT_ID]/logs/cos_system AND \
      jsonPayload._HOSTNAME=[INSTANCE_NAME] AND \
      jsonPayload.SYSLOG_IDENTIFIER=docker"

ここで

  • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
  • [INSTANCE_NAME] は、ログを取得するインスタンスの名前です。

たとえば、my-project に存在し、COS 70 を実行している nginx-vm という名前の VM インスタンスの最新 10 件の Docker ログを Stackdriver で表示するには、次のコマンドを使用します。

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/my-project/logs/cos_system AND \
    jsonPayload._HOSTNAME=nginx-vm AND \
    jsonPayload.SYSLOG_IDENTIFIER=docker" \
    --limit 10

コンテナのログの表示

Console

  1. [VM インスタンス] ページに移動します。

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

  2. 起動エージェントのログを表示する VM インスタンスを選択します。
  3. [ログ] で [Stackdriver Logging] をクリックして、Stackdriver のログを表示します。

  4. Stackdriver のロギングページにデフォルトの検索フィルタが読み込まれます。COS 69 以降を使用している場合は、フィルタを調べて resource.labels.instance_id の値をコピーします。これは後で使用します。

  5. 検索フィルタを更新して、コンテナのログを取得します。

    COS 68 以前を使用している場合は、次のフィルタを使用します。

    logName="projects/[PROJECT_ID]/logs/gcplogs-docker-driver"
    jsonPayload.container.name="/[INSTANCE_NAME]"
    

    ここで

    • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
    • [INSTANCE_NAME] は、ログを取得するインスタンスの名前です。

    COS 69 以降を使用している場合は、次のフィルタを使用します。

    resource.type="gce_instance"
    logName="projects/[PROJECT_ID]/logs/cos_containers"
    resource.labels.instance_id="[INSTANCE_ID]"
    

    ここで

    • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
    • [INSTANCE_ID] は、ログを取得するインスタンスの ID です。

gcloud

コンテナのログを表示するには、gcloud logging read コマンドを適切なフィルタとともに使用します。

COS 68 以前を使用している場合は、次のコマンドとフィルタを使用します。

gcloud logging read "logName=projects/[PROJECT_ID]/logs/gcplogs-docker-driver AND \
    jsonPayload.container.name=/[INSTANCE_NAME]"

COS 69 以降を使用している場合は、次のようにします。

  1. ログを取得するインスタンスの ID を判別します。

    gcloud compute instances describe [INSTANCE_NAME] \
        --zone [ZONE] \
        --format="value(id)"
    

    ここで

    • [ZONE] は、インスタンスが配置されているゾーンです。
    • [INSTANCE_NAME] は、ログを取得するインスタンスの名前です。
  2. インスタンスのコンテナのログを表示するには、次のコマンドとフィルタを使用します。

    gcloud logging read "resource.type=gce_instance AND \
        logName=projects/[PROJECT_ID]/logs/cos_containers AND \
        resource.labels.instance_id=[INSTANCE_ID]"
    

    ここで

    • [PROJECT_ID] は、インスタンスが含まれるプロジェクト ID です。
    • [INSTANCE_ID] は、インスタンスの ID です。

    たとえば、my-project に存在し、インスタンス ID が 555123456789012345 であり、COS 70 を実行している VM インスタンスの最新 10 件のログを Stackdriver で表示するには、次のコマンドを使用します。

    gcloud logging read "resource.type=gce_instance AND \
        logName=projects/my-project/logs/cos_containers AND \
        resource.labels.instance_id=555123456789012345" \
        --limit 10
    

コンテナ用に最適化されたイメージまたはイメージ ファミリーの指定

コンテナ化された VM インスタンスまたはインスタンス テンプレートを作成するには、デフォルトでサポートされている最新のコンテナ用に最適化されたイメージを使用します。このイメージは cos-cloud プロジェクトに属します。

このデフォルトは、イメージ ファミリー cos-stablecos-betacos-dev のバージョン 62 以降の別のイメージ、またはこれらのイメージ ファミリーのいずれかでオーバーライドできます(すべて cos-cloud プロジェクトにあります)。

これらのイメージ ファミリーに含まれるコンテナ用に最適化されたイメージには、次の 3 つのリリース チャネルがあります。

  • dev チャネルには最新の変更がすべて含まれており、頻繁に更新されます。
  • beta チャネルはベータ版の限定イメージであり、それほど頻繁には更新されません。
  • stable チャネルでは、長いテスト期間を経てサポートされているリリースが提供されます。クリティカルな更新がまれに発生します(必要な場合)。

たとえば、gcloud ツールを使用して、デフォルトのコンテナ用に最適化されたイメージをオーバーライドする場合は、--image フラグを指定します。また、VM 作成時に指定されたファミリーから最新のイメージを取得する場合は、--image-family フラグを指定します。

次の例では、cos-dev イメージ ファミリーの最新のイメージを使用して、コンテナ化された VM インスタンスを作成します。

 gcloud compute instances create-with-container nginx-vm \
   --image-family cos-dev \
   --image-project cos-cloud \
   --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

ファイアウォール ルールの構成

コンテナ化された VM は、ネットワークをホストモードに設定してコンテナを起動します。コンテナはホストのネットワーク スタックを共有し、ホストのインターフェースをすべて使用できます。

Google Cloud Platform のファイアウォール ルールデフォルトでは、VM インスタンスへのすべての受信接続がブロックされ、VM インスタンスからのすべての送信接続が許可されます。

インスタンスおよびコンテナへの受信接続を許可するには、ファイアウォール ルールを作成します。

コンテナの実行オプションの構成

コンテナを実行する場合に、次のオプションを構成できます。

  • コンテナの再起動ポリシーを指定します。
  • コンテナ ENTRYPOINT(コンテナの起動時に実行されるデフォルトのコマンド)をオーバーライドします。
  • コンテナの ENTRYPOINT コマンドに引数を渡します。
  • 特権モードでコンテナを実行します。
  • ホスト ディレクトリまたは tmpfs をコンテナ内のデータ ボリュームとしてマウントします。
  • 環境変数を設定します。
  • コンテナ ランタイムに STDIN のバッファを割り当てます。
  • 疑似 TTY を割り当てます。

コンテナを実行する際のオプションの構成をご覧ください。

次のステップ

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

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

Compute Engine ドキュメント