コンテナーと仮想マシンを比較する

完了

ハードウェアの仮想化により、オペレーティング システムの複数の分離されたインスタンスを、同じ物理ハードウェア上で同時に実行できるようになりました。 コンテナーは、コンピューティング リソースの仮想化における次の段階を表します。

コンテナー ベースの仮想化を使用すると、オペレーティング システムを仮想化できます。 この方法を採用すると、オペレーティング システムの同じインスタンス内で複数のアプリケーションを実行しながら、アプリケーション間の分離を維持できます。 仮想マシン内のコンテナーは、物理サーバー内の仮想マシンと同様の機能を備えています。

コンテナーと仮想マシンの違いについて知っておくべきこと

コンテナーベースの仮想化について理解を深めるために、コンテナーと仮想マシンを比較してみましょう。

比較 コンテナー 仮想マシン
分離 通常、コンテナーにはホストや他のコンテナーからの簡易な分離機能がありますが、コンテナーでは仮想マシンほど強力なセキュリティ境界が設定されません。 仮想マシンを使用すると、ホスト オペレーティング システムや他の仮想マシンから完全に分離されます。 この分離は、同じサーバーまたはクラスター上の競合企業からのアプリのホスティングなど、強力なセキュリティ境界が重要な場合に役立ちます。
オペレーティング システム コンテナーは、オペレーティング システムのユーザー モードの部分を実行します。アプリに必要なサービスのみを含むように調整することもできます。 このアプローチを採用すると、使うシステム リソースを減らすことができます。 仮想マシンは、カーネルを含む完全なオペレーティング システムを実行します。そのため、より多くのシステム リソース (CPU、メモリ、ストレージ) が必要です。
デプロイ Docker を使い、そのコマンド ラインを介して、個々のコンテナーをデプロイできます。 Azure Kubernetes Service などのオーケストレーターを使って、複数のコンテナーをデプロイできます。 Windows Admin Center または Hyper-V マネージャーを使用して、個々の仮想マシンをデプロイできます。 PowerShell または System Center Virtual Machine Manager を使って、複数の仮想マシンをデプロイできます。
永続的ストレージ コンテナーの場合、単一のノードのローカル ストレージには Azure ディスクを、複数のノードまたはサーバーが共有するストレージには Azure Files (SMB 共有) を使います。 仮想マシンの場合、単一のマシンのローカル ストレージには仮想ハード ディスク (VHD) を、複数のサーバーが共有するストレージには SMB ファイル共有を使います。
フォールト トレランス クラスター ノードで障害が発生した場合、そのノード上で実行されているすべてのコンテナーは、オーケストレーターによって別のクラスターノード上に迅速に再作成されます。 仮想マシンはクラスター内の別のサーバーにフェールオーバーすることができます。この場合、仮想マシンのオペレーティング システムは新しいサーバー上で再起動します。

コンテナーを使う場合に考慮すべきこと

コンテナーには、物理マシンと仮想マシンよりも優れている点がいくつかあります。 次の利点を確認し、どのようにすれば会社の内部アプリにコンテナーを実装できるかを検討してください。

  • 柔軟性とスピードを検討します。 コンテナー化されたアプリケーション コードを開発するときと共有するときの柔軟性と速度が向上します。

  • テストを検討します。 アプリのテストを簡略化できるように、構成のコンテナーを選びます。

  • アプリのデプロイを検討します。 コンテナーを実装して、アプリのデプロイの効率化と高速化を実現します。

  • ワークロードの密度を検討します。 コンテナーを使うことで、より高いワークロードの密度をサポートし、リソースの使用率を高めます。

コンテナー イメージについて

すべてのコンテナーは、コンテナー イメージから作成されます。 コンテナー イメージは、アプリケーションの実行に必要なすべてをカプセル化する、軽量でスタンドアロンのソフトウェアの実行可能パッケージです。 次のコンポーネントが含まれます。

  • コード:アプリケーションのソース コード。
  • ランタイム:アプリケーションを実行するために必要な環境。
  • システム ツール:アプリケーションが機能するために必要なユーティリティ。
  • システム ライブラリ:アプリケーションによって使用される共有ライブラリ。
  • 設定:アプリケーションに固有の構成パラメータ。

コンテナー イメージを作成すると、さまざまなコンピューティング環境で一貫して実行できるポータブル ユニットになります。 これらのイメージは、実行時に実行されるこれらのイメージのインスタンスである、コンテナーの構成要素です。