VM と MIG へのコンテナのデプロイ

Docker コンテナをデプロイして起動するように VM インスタンスまたはインスタンス テンプレートを構成することができます。Compute Engine が提供する最新の Container-Optimized OS(COS)イメージには Docker がインストールされていて、VM が開始したらコンテナを起動します。VM にコンテナをデプロイする利点の詳細については、下記の VM およびインスタンス グループへのコンテナのデプロイを選択するをご覧ください。

始める前に

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

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

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

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

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

Compute Engine の仮想マシン(VM)ごとに個別のマイクロサービスを実行すると、コストの大部分をオペレーティング システムのオーバーヘッドが占める可能性が生じます。Google 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 し、コンテナを起動します。
コンテナ イメージと `docker run` コマンドの使用。
コンテナを実行する VM インスタンスまたはマネージド インスタンス グループを作成する手順

制限事項

  • 各 VM インスタンスにデプロイできるコンテナは 1 つのみです。1 つの VM インスタンスに複数のコンテナをデプロイする必要がある場合は、Google Kubernetes Engine を検討してください。
  • 公開リポジトリにあるコンテナ、または Container Registry の限定公開リポジトリにあるコンテナのみをデプロイできます。現在のところ、他の非公開リポジトリはサポートされていません。
  • VM インスタンスのポートをコンテナのポート(Docker の -p オプション)にマッピングすることはできません。
  • このデプロイ方法で使用できるのは、Container-Optimized OS イメージのみです。
  • これは Google Cloud Platform Console または gcloud コマンドライン ツールからのみ実行できる機能です。API では実行できません。

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

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

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

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

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

Console

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

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

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

  2. [インスタンスを作成] ボタンをクリックして新しいインスタンスを作成します。
  3. [コンテナ] セクションで、[この VM インスタンスにコンテナ イメージをデプロイします] をオンにします。
  4. [コンテナ イメージ] にコンテナ イメージ名を指定し、必要に応じてコンテナの実行オプションを構成します。たとえば、コンテナ イメージとして gcr.io/cloud-marketplace/google/nginx1:latest を指定できます。
  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:latest を起動して実行する、nginx-vm という名前の新しい VM インスタンスを作成します。

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

詳細については、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:latest

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

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

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

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

  1. Docker イメージに基づいてインスタンス テンプレートを作成します。

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

Console

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

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

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

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

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

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

これでインスタンス テンプレートが作成されたので、そのインスタンス テンプレートを使用してマネージド インスタンス グループを作成できます。たとえば、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 を使用したコンテナへの接続

VM 上のコンテナには、SSH を使用して接続できます。それには、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 Logging] ページにデフォルトの検索フィルタが読み込まれます。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)が使用されます。このイメージは 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.15

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

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

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

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

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

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

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

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

次のステップ

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

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

Compute Engine ドキュメント