generated at
システムVMとコンテナの相違点

コンテナはOSを仲介しないため軽量


OSの有無による、リソース消費
システムVMはOSをまるごと乗っける
ホストOSゲストOSが同じOSだとしても、カーネルやシステムのデーモンを重複してロードすることになるためメモリを無駄に消費する
コンテナは1つのOS上に独立環境を構築する
メモリ消費などは少なく抑えられる
同じ性能のハードウェアであれば、コンテナのほうがより多くの数を起動できる



出来ることの豊富さ
システムVMはOSを持つため、リソースを集中的に使用する複数の機能を一度に実行できる
ここ、コンテナにデメリットあるの #??
>仮想マシンは1つの独立したサーバーとして機能しますので、仮想マシンごとに異なるOSを動かすことができます。一方コンテナは1つのOSから作られているため、OSは同じでなくてはなりません ref
そうなん?


隔離レベル
仮想的なハードウェアレベルで隔離されるため、ホストOSから、ゲストOS上のアプリケーションなどは確認できない
ゲストOSから、ホストOSへのアクセス方法も限定的なので、よりセキュア
コンテナは
プロセスとして起動するので、ホストOSからコンテナのプロセスを確認できる
ホストOSとリソースを共有するため、隔離レベルは低い
コンテナから、別のコンテナやホストOSに影響を与えうる




可搬性
コンテナの場合、コンテナ管理ソフト(e.g. Docker)がハードウェアやOSの差異を吸収してくれるので、コンテナをイメージなどとして配布することで、どんな環境でも同じ環境を構築できる
>仮想マシンでは、実行環境が変われば、ハードウェアやOSの設定を確認しなければなりませんので、コンテナよりも手間が掛かります ref