K8s 5分講座#02 コンテナと仮想マシンの違い

Monta

今日はコンテナと仮想マシンの違いについて話すぞ!

はかせ
はかせ

どちらも1つのHW上に複数のアプリケーション群(コンテナ・仮想マシン)を置けるし、広い意味ではどちらも”仮想化技術”ですよね?どう違うんだろう…

もんた
もんた
1

構造上の違い

どちらも最下レイヤからHW、その上にOSがある所までは同じだが、その上が違う。コンテナ(ここではDocker)ではOS上にインストールされたDockerがある。

はかせ
はかせ

コンテナの場合は、下からHW→OS→Dockerですね。

もんた
もんた

そしてDockerは、ライブラリとそのライブラリの動作に必要な関連ファイルだけで実行するコンテナを管理できる。

はかせ
はかせ

ふむふむ。仮想マシンだとどうなりますか?

もんた
もんた

仮想マシンの場合は、Dockerの代わりにハイバーバイザ等の仮想化技術が来て、その上に仮想マシンが起動する。

はかせ
はかせ

仮想マシンは、下からHW→OS→ハイパーバイザ→仮想マシンですね。

もんた
もんた

仮想マシンにはそれぞれOSがあり、その上はコンテナと同じくライブラリと関連ファイルだ。

はかせ
はかせ

あれ、またOSですか?HW→OS→ハイパーバイザ→OS→…とサンドイッチになってますね。このOSはそれぞれカーネルとディストリビューションを含んでいるんですよね?

もんた
もんた

ちゃんと前回の講義を覚えているな!つまり同じ役割を持つ層が2つあることになる。これがコンテナと仮想マシンの構造上の違いであり、リソース面・分離度の違いにも表れてくる。

はかせ
はかせ
2

リソース面の違い

OSってパソコンの電源を入れて、ログイン画面が出るまでの待ち時間で起動するアレですよね?

もんた
もんた

そうだ。ホストのOSに加え、仮想OSとカーネルが存在し、仮想マシンを実行するということは、それだけリソースも多く必要になる。

はかせ
はかせ

ずっしり重いマシンになりそうだ…

もんた
もんた

通常ギガバイトのサイズになるため、このオーバーヘッドによって基礎リソースの使用率が高くなり、ディスク容量も消費する。

はかせ
はかせ

コンテナだと、どれくらいですか?

もんた
もんた

Dockerコンテナの場合は軽量で、通常メガバイトだ。これによって、Dockerコンテナは通常数秒という速さで起動できるようになる。

はかせ
はかせ

仮想マシンを触ったことがありますが、起動に数分はかかりますね。

もんた
もんた

そうだ。ホスト自体のOSのほかに、仮想マシンとしてOS全体を起動する必要があるからな。

はかせ
はかせ
3

分離度の違い

仮想マシン上で別のOSが立ち上がるということは、ホストと複数の仮想マシン同士が互いに完全に分離されているということでもある。

はかせ
はかせ

基盤となるOSやカーネルに依存しないからこそ、LinuxベースやWindowsベースなど、異なる種類のOSを同じハイパーバイザ上で使用することができるんですね。

もんた
もんた

一方でコンテナはカーネルのようにコンテナ間で共有されるリソースが多いため、分離度が低いという点は覚えておこう。

はかせ
はかせ

これらの特徴を踏まえてコンテナと仮想マシンを使い分ける必要があるんですね!

もんた
もんた
今日のポイント
  • コンテナは下から、HW→OS→コンテナ→ライブラリ等、
    仮想マシンはHW→OS→ハイパーバイザ→OS→ライブラリ等となり、OSが2層ある状態。
  • リソース面では仮想マシンが不利で、通常起動には数分かかる。コンテナは数秒。
  • 仮想マシンはハイパーバイザ上で任意のOSを立ち上げられるが、コンテナはホストと同OSの制約あり。
Coffee Break

放課後

レイヤの図解がいっぱい出てくるから、ハンバーガーを食べたくなっちゃいました…一緒に食べに行きましょうよぉ

もんた
もんた

前回の講義後にケン○ッキーに行ったばかりじゃないか…

はかせ
はかせ

OSの授業は美味しそうなものばかり出てきますね。次はスイーツが良いなぁ。

もんた
もんた
次の講義はこちら
K8s 5分講座#03 コンテナの利点
K8s 5分講座#03 コンテナの利点

ABOUT ME
もんた
もんた
システムエンジニア歴15年、2児の父。
ITの世界に飛び込んで以来、仮想サーバ・ネットワーク・データベース・クラウド・コンテナ等、
様々な分野の業務に携わりながら、異動のたびに何度も”初心者”になり、学習を繰り返す。

会話形式でサラッと読み進められるIT技術講座を展開中。
読みやすいのに気づいたら基礎から応用まで身に付いている!そんな記事が目標です。
記事URLをコピーしました