ベアメタルでドッカーコンテナを実行するのと比較して、仮想マシン内でドッカーコンテナを実行するとどのような利点がありますか?

ベアメタルでドッカーコンテナを実行するのと比較して、仮想マシン内でドッカーコンテナを実行するとどのような利点がありますか?

ベアメタル(ホストマシンから直接)でドッカーコンテナを実行するのと比較して、仮想マシン内でドッカーコンテナを実行するとどのような利点がありますか?

仮想マシン内でドッカーコンテナを実行している一部の会社について聞きました。特に、一部の組織がこれを行っていると言われているドッカーカンファレンスではそうです。なぜ?

(ホスト上で実行されるDockerコンテナとホストのKVM内で実行されるDockerコンテナの比較)

  • DockerとKVMの両方に現在の状態を保存する方法があるので、これには追加の利点はありません。
  • DockerとKVMの両方がネットワークを使用するために別々のIPを提供できます。
  • DockerとKVMの両方が実行中のプログラムとインストールを分離して、ホスト実行プロセスとの競合を防ぎます。
  • DockerとKVMはどちらも企業の成長に合わせて簡単に拡張できる方法を提供します。
  • どちらもインスタンスを別のホストに簡単に移動する方法を提供します。

それでは、なぜKVMでDockerを実行するのですか? KVMが不要なパフォーマンスを失うことはありませんか?

ベストアンサー1

あなたのポイント:

DockerとKVMの両方に現在の状態を保存する方法があるので、これには追加の利点はありません。

状態を保存する方法を除いて、2つの方法のうちの1つがより効率的である可能性があります。また、コンテナの状態を100%安定して保存することはできません。

DockerとKVMの両方がネットワークを使用するために別々のIPを提供できます。

使用する仮想マシンとコンテナシステムによっては、コンテナよりも仮想マシンを設定する方が簡単な場合があります。これは、VM /コンテナに専用のレイヤ2インターフェイスを提供したい場合に特に当てはまります。これはほぼ常にVMを使用する方が簡単です。

DockerとKVMの両方が実行中のプログラムとインストールを分離して、ホスト実行プロセスとの競合を防ぎます。

仮想マシンはコンテナよりも優れたタスクを実行します。コンテナは依然としてホストオペレーティングシステムに対して基本的なシステムコールを実行しています。これは彼らが可能性が高いことを意味します。まっすぐこれらのシステムコールのバグを使用してください。仮想マシンには独自のオペレーティングシステムがあり、より優れた分離が可能です。

DockerとKVMはどちらも企業の成長に合わせて簡単に拡張できる方法を提供します。

私は個人的にVMが正しく拡張されるのがコンテナよりも少し優れていることを知っていましたが(最も可能性の高い理由はVMがハードウェアに適切な問題を適切にオフロードしますが、コンテナはそれを処理するためにソフトウェアが必要です)が原因である可能性が高いです)。

どちらもインスタンスを別のホストに簡単に移動する方法を提供します。

いいえ、正確ではありません。どちらもオフラインで移行できますが、多くのコンテナシステムはリアルタイムで移行できません(例:走るあるホストから別のホストへのコンテナ)リアルタイム移行は非常に合理的な規模で実行している場合、これは管理効率の点で重要です(ホストで更新を実行する必要がありますか?すべてを別のシステムに移行し、ホストを再起動し、すべてを2番目のホストに移動します。移行されます。

いくつかの追加:

  • VMは通常、高可用性オプションを使用する方が簡単です。コンテナにそのようなオプションがないわけではありませんが、通常は仮想マシンで使用してアプリケーションコードを調整する方が簡単です。
  • 仮想マシンはクラウドホスティング間で直接移行するのが簡単です(基本的なホスティング環境がどのように見えるかを同じように気にする必要はありません)。
  • 仮想マシンを使用すると、ホストオペレーティングシステムとは異なるプラットフォームを実行できます。 Linuxディストリビューションによってカーネル構成が大きく異なり、あるディストリビューション用に作成された内容が他のディストリビューションでも完全に機能することを保証することはできません。
  • VMを使用すると、潜在的な攻撃面をより効果的に制御できます。コンテナを使用すると、ホストオペレーティングシステムのコードがまだメモリ内にあり、潜在的な攻撃ベクトルになるという事実から逸脱することはできません。仮想マシンを使用すると、スタンドアロンのオペレーティングシステムを実行できるため、実際に必要な最小レベルに削減できます。
  • 仮想マシンで関連するコンテナグループを一緒に実行すると、コンテナグループを一緒に起動および停止する簡単で確実な方法が提供されます。

おすすめ記事