クラウドにおけるDockerの位置

クラウドにおけるDockerの位置

aws ECS やその他のコンテナ サービスを一旦脇に置いておくと、クラウド内の VM 上で実行される Docker ホストは無関係でしょうか?

コンテナはゲスト OS を最適化することになっていますが、すでに VM を操作しているため、一種の「帽子の上に帽子」のようなものではないでしょうか?

たとえば、packer でプロビジョニングされた 4 つの小さな VM ではなく、2 つの中規模の VM で 4 つのコンテナーをホストすることの利点は何でしょうか?

答え1

メリットはあるでしょう。

たとえば、いくつかの仮想マシンがコンテナー化されたアプリで Docker をホストしている場合を考えてみましょう。シン VM でも同様のセットアップは可能ですが、Docker ほど便利ではないかもしれません。また、VM はコンテナーほどシンではありませんが、Docker セットアップでは 1 つの OS カーネルと 1 セットのシステム サービスのみが実行されるのに対し、VM はそれぞれ独自のカーネルと完全な環境を備えた本格的な OS を実行するため、より多くのリソースを無駄にします。

一方、Docker とそのアプリケーションを専用の VM に配置すると、これらすべてがホスト上の他のサービスから分離され、そのホスト上で他の VM を実行できるようになります。これらの VM は、近くに Docker があることさえ認識しません。これにより、管理性が大幅に向上します。また、この Docker VM はハードウェアから切り離され、必要に応じて別のホストに移行できるため、「IaaS」スタイルの高可用性を実装することもできます。慎重に設定すれば、全体的な可用性が向上します (Docker 自体が実装する「PaaS」に加えて)。

一般的に、仮想化は一連の問題を解決することを目的としており、コンテナ化は他の問題を解決します。Proxmox VE のように、完全なシステム コンテナ化の分野では、一部重複しています。コンテナ用に LXC を使用した専用環境を実行します。しかし、PVE と Docker を実行する必要があることを考えると、クラスターなどに干渉しないことを確認するために、VM をセットアップします。

関連情報