Container-Optimized OS の概要

Container-Optimized OS from Google は、Docker コンテナの実行に対して最適化された Compute Engine VM 用のオペレーティング システム イメージです。 Container-Optimized OS は、Google によってオープンソースの Chromium OS プロジェクトに基づいて維持管理されています。 Container-Optimized OS を使用すると、Docker コンテナを Google Cloud Platform ですばやく、効率的に、安全に使用できます。

機能と利点

Container-Optimized OS には、次の利点があります。

  • コンテナをすぐに起動: Container-Optimized OS インスタンスには Docker ランタイムと cloud-init があらかじめインストールされています。Container-Optimized OS インスタンスを使用すると、VM を作成すると同時に Docker コンテナを起動することができます。ホスト上での設定は必要ありません。
  • 攻撃される範囲が減少: Container-Optimized OS はフットプリントが小さいので、インスタンスを攻撃される潜在的な範囲が減少します。
  • デフォルトで遮断: Container-Optimized OS インスタンスには、遮断されたファイアウォールやその他のセキュリティ設定がデフォルトで行われています。
  • 自動アップデート: Container-Optimized OS インスタンスは、毎週のアップデートをバックグラウンドで自動的にダウンロードするように設定されています。

制限事項

Container-Optimized OS は、他のオペレーティング システムと共通の一般的な機能の一部をサポートしていません。

  • Container-Optimized OS にはパッケージ マネージャーが含まれていません。このため、インスタンスにソフトウェア パッケージを直接インストールすることはできません。ただし、CoreOS toolbox を使用すると、分離されたコンテナにデバッグツールや管理ツールをインストールして実行できます。
  • Container-Optimized OS は、コンテナ化されていないアプリケーションの実行をサポートしていません。
  • Container-Optimized OS カーネルは遮断されています。サードパーティのカーネル モジュールまたはドライバをインストールすることはできません。
  • Container-Optimized OS は、Google Cloud Platform 環境以外ではサポートされていません。

Container-Optimized OS の使用

Container-Optimized OS は、Kubernetes Engine におけるデフォルト ノード OS イメージであり、Google Cloud Platform の他の Kubernetes デプロイ向けのデフォルト ノード OS イメージでもあります。Kubernetes Engine で Container-Optimized OS を使用する方法については、Kubernetes Engine のクイックスタートをご覧ください。

Container-Optimized OS を使用して、Compute Engine インスタンス上の Docker コンテナを最小限の設定で起動することもできます。詳しくは、インスタンスの作成と構成を参照してください。

pinggcloud コマンドライン ツール、pstreehtopemacs などのツールは CoreOS toolbox ユーティリティを使用して実行できます。これは、Container-Optimized OS の /usr/bin/toolbox にあらかじめインストールされています。詳しくは、ツールボックスを使用したデバッグをご覧ください。

Container-Optimized OS のユースケース

ほとんどの Docker コンテナは Container-Optimized OS を使用して実行できます。次のような状況では、Compute Engine インスタンスのオペレーティング システムとして Container-Optimized OS の使用を検討してください。

  • 最小限の設定で Docker コンテナや Kubernetes のサポートが必要である。
  • フットプリントが小さく、コンテナ向けにセキュリティが強化されたオペレーティング システムが必要である。
  • Compute Engine インスタンスで Kubernetes を実行する目的でテストされ、検証されたオペレーティング システムが必要である。

次のような場合、Container-Optimized OS は適切な選択肢ではありません。

  • アプリケーションがコンテナ化されていないか、コンテナ化されたアプリケーションが Container-Optimized OS で利用できないカーネル モジュール、ドライバ、その他の追加パッケージに依存している。
  • Linux プロバイダ(Canonical、Core OS、Redhat、SUSE など)から専門的なカスタマー サポートが必要である。
  • イメージと OS アプリケーションを Google Cloud Platform 以外で完全にサポートする。

Google Cloud Platform でコンテナ化されたアプリケーションの実行に使用できるその他のオペレーティング システムについては、GCP のコンテナをご覧ください。Compute Engine は、コンテナ用に最適化されたイメージを含む、その他の一般的なオペレーティング システムのイメージを提供します。