VMとの比較に見る、「コンテナ」と「仮想化」との違い

 


ディア:「最新のコンテナ技術ってすごいんだね」


クラフ:「いや。注目されているのは最近だけれど、
コンテナは2006年ごろから機能自体は存在していて、
意外と古い(枯れた)技術なのさ」


ディア:「知らなかった。仮想化の時代からコンテナはあったんだね」


クラフ:「実は、コンテナも仮想化技術の一種なんだ。広く知られている従来の仮想化は、2000年代に広く普及した『サーバー仮想化技術』『ハイパーバイザー仮想化』のような、1つのサーバーリソースとそれを必要とする環境を分離する技術だよね」


サトル:「じゃあ、同じ仮想化なのに、従来の仮想化とコンテナ仮想化は何が違うのかな?」


クラフ:「コンテナは、ホストOSを共有する仮想化技術なんだ。従来の仮想化とコンテナ仮想化の違いから、コンテナの特長を説明してゆくよ」

■仮想化とコンテナの違い

ハイパーバイザー型の仮想化では、ハイパーバイザーというソフトウェアをインストールして、その上にOSやアプリを備えた仮想マシン(VM)と呼ばれる環境ごとにシステムが独立して動くんだ。1つの物理サーバー(ホストサーバー)の中に、複数のVMを設定することで、より多くの処理を可能にしているのさ。

一方、コンテナ型の仮想化では、コンテナ自体にはOSがないんだ。OSは一番下にあるホストOSだけなんだ。ホストOSの上にある『コンテナエンジン』がハイパーバイザーと似た役割をして、コンテナのアプリを動かしてくれるという仕組みだ。

仮想化とコンテナの違いは?

コンテナはホストOSを共有する仮想化技術

サトル:「VMもコンテナもそれぞれが独立して動くポータビリティを持っているんだね」


クラフ:「その通り。ただ、コンテナとVMは、そのポータビリティの境界が違うんだ。コンテナは物理的にサーバーを分割するのではなく、あくまでサーバーOSは1つなんだ」


ディア:「他にはどんな違いがあるの?」


クラフ:「これまでのおさらいにもなるけれど、コンテナの中身はアプリとアプリのプロセスだけがパッケージ化されているよね。コンテナにはOSがないから、ホストOSのカーネルを共有して動く仕組みなんだ」


サトル:「コンテナエンジンが、ハイパーバイザーのような役割を果たすんだよね」


クラフ:「おお、よく理解しているね。ハイパーバイザー型の仮想化では、VMごとにOSが必要になるけれど、コンテナではホストOSを共有しているので、リソース効率に優れた仮想化技術だといえるんだ」

仮想化とコンテナの違いは?

VMと比較するとコンテナはリソース効率に優れた仮想化技術

ネットワールドのコンテナ・Kubernetes関連製品やソリューション