そろそろ、コンテナー型の軽量仮想化基盤である「Docker」を使ってみるか―。こう考えるエンジニアが急増している。
期待が高まっているとはいえ、Dockerはバージョン1.0が2014年6月にリリースされてからまだ1年にも満たない新しい技術。いざ利用するにしても、「まずは、何に使えばよいのだろうか」と思案に暮れてしまうだろう。そこでこの記事では、先駆的にDockerを利用している六つの事例を整理する形で、Dockerの使い道を示す。
仮想マシンとの使い分けが重要
最初に、Dockerがどのようなものなのか把握しておこう。従来の仮想マシンと比べると分かりやすい(図1)。
仮想マシンはホストOS上でハードウエアを仮想的に再現し、そこにゲストOSを導入して動かす。一方、Dockerのコンテナーは、ホストのOSカーネル上でプロセスをグループ化して分離するもの。1組のプロセス群が、独立したサーバーとして機能する。
仮想マシンはゲストOSを自由に選べる一方で、起動が遅く、処理のオーバーヘッドが大きい。それに比べDockerのコンテナーは、ゲストOS(Linuxカーネル)を選べないものの、軽量で起動が速い。
加えて、Dockerではテキストファイルにコンテナーの構成を書くだけでサーバーを容易に構築できるので、サーバーを使い捨てても惜しくない。アプリケーションが動作する状態のコンテナーを独自にイメージ化し、複数ユーザーで共有したり、大量のサーバーに配布したりすることも簡単にできる。
仮想マシンとDockerには、それぞれ一長一短がある。どちらかが一方的に優れているというものではない。それぞれの特徴を踏まえて、用途や目的に応じて使い分けることが重要になる。