今、仮想化の新たなタイプとして、コンテナーが注目を集めている。最も有力なのがLinux上で動作する「Docker」。従来のサーバー仮想化よりも軽量で、使いやすいインタフェースを備える。“Immutable Infrastructure”の構築にも利用される。コンテナー上で利用できるOSが固定されるものの、サーバー基盤の一つとして広まっていきそうだ。

 「Docker」は、サーバー機1台の上で、仮想的に複数のアプリケーション環境(コンテナー)を作るソフトだ。コンテナーを作成し、容易にサーバーに配布して実行できる。ハードウエアを再現するタイプの従来の仮想化ソフトよりも軽量で管理が容易な点から注目を集めている。

 開発は、米Docker社が進めている。2013年3月、初めてオープンソースとして公開された後、猛烈な勢いで開発が進み、1年足らずで米国で大ブームとなっている。2014年6月に発表されたRed Hat Enterprise Linux 7でDockerが利用可能になり、同月にはDocker自体もバージョン1.0がリリースされた。その後も2014年7月にバージョン1.1がリリースされるなど、活発な開発が継続している。

 Dockerは、Go言語で書かれている。ソースコードは開発者用サービス「GitHub」上で公開されている(https://github.com/dotcloud/docker)。開発はGitHub上でオープンに進められており、バグレポートや機能改善の要望もここから出せる。

 Dockerを支える中心的な技術が「コンテナー」だ。従来のサーバー仮想化が「ハードウエアレベルの仮想化」と呼ばれるのに対し、コンテナーは「OSレベルの仮想化」と呼ばれる。まず、この二つを対比しながら理解していこう(図1)。

図1●サーバー仮想化とDockerによるコンテナーの違い
[画像のクリックで拡大表示]

この先は会員の登録が必要です。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら