アプリケーションの実装環境を仮想化するソフトウエア。2013年3月に無償のオープンソースソフトウエアとして公開された。ドワンゴやリクルートといったインターネット関連企業が導入している。

 ネット企業のエンジニアを中心に「Docker(ドッカー)」と呼ぶソフトウエアが注目を集めています。Dockerは、アプリケーションの実行環境を仮想化するソフトです。企業システムで広く普及しているサーバーの仮想化と比べてみると、Dockerの仕組みや特徴を理解できます。

仕組み:アプリの実行環境を仮想化

 サーバー仮想化とは、ホストOS上で異なる複数の「ゲストOS」を実行する技術です。具体的には「ハイパーバイザー」と呼ぶソフトウエアを使い、仮想的なCPUやメモリー、ハードディスクなどで構成する「仮想マシン」を作成します。作成した仮想マシン上で、ウィンドウズやLinuxといった様々なOSを実行できます。LinuxのホストOS上でウィンドウズのゲストOSを実行することも、その逆も可能です。

 一方、Dockerは「コンテナー」と呼ぶ仮想化技術を採用しています。コンテナーは、ホストOSの環境を複数のグループに分割し、それぞれを独立した環境として動作させる技術です。サーバー仮想化のようなゲストOSは使いません。このため、コンテナーで実行できるアプリケーションはホストOSに対応したアプリケーションに限定されます。Dockerは現在Linuxでしか動作しません。つまり、コンテナーで実行できるアプリケーションは、Linuxアプリケーションに限られます。

 そういうと、ウィンドウズを含む様々なOSを実行できるサーバー仮想化の方が使い勝手が良いように見えます。けれども、パフォーマンスと再現性の高さで比較すると、Dockerの方が優位になってきます。