コンテナ型仮想化

時代はどんどん進むなぁ。Docker、IBM、Microsoft、RedHatがGoogleのコンテナ管理フレームワークKubernetesにこぞって開発参加する理由を読み始めて「さっぱり、理解できない」と感じたので、用語収集。チーム開発実践入門 ~共同作業を円滑に行うツール・メソッドでわかっていなかったVMWareなどのソフトウェアとDokcerなどのソフトウェアの違いがやっとわかった。

コンテナ型仮想化

また,従来は仮想的なマシンをコンピュータ上で実現するVMwareHyper-VKVMといった技術が話題になることが多かったことに対し,最近ではImmutable Infrastructureといったキーワードと共に『コンテナ』が話題になることが増えました。『コンテナ』とは先に述べた仮想マシンを実現する仕組みに比べて軽量な仮想化の仕組みです。
第1回 LXCとコンテナの基本より)

VMでは図1のように,コンピュータの上で動くOSやVMを実現するためのハイパーバイザの上で,実際のハードウェアをエミュレートするVMが動きます。つまり実際の物理的なコンピュータと同じようなものがソフトウェアによって実現されているので,このVMを使うにはOSが必要になります。
〜中略〜

一方コンテナは,図2のように,起動する全てのプロセスはコンピュータ上にインストールされたOS(ホストOS)上で直接起動します。通常のプロセスの動作と異なるのは,そのプロセスの一部をグループ化し,他のグループやグループに属していないプロセスから隔離した空間で動作させる点です。貨物輸送のコンテナのように,隔離された空間にプロセスが入っているので,この空間を『コンテナ』と呼ぶわけです。実際のコンテナのように,あるコンテナの内部から他のコンテナの内部を見ることはできません。

第2回 コンテナの仕組みとLinuxカーネルのコンテナ機能[1]名前空間とは?より)

コンテナ型仮想化を実現するソフトウェア:LXC