軽量仮想化基盤のDocker 今ハマる三つの使い道

特集
コンテナー型仮想化基盤「Docker」への期待
が高まっている。開発環境に加え、本番環境
への導入も始まっている。先進ユーザー 6 社の
事例を基に、三つの使い道を紹介する。
(堀内 かほり、手嶋 透)
先進
6 事例に見る
特 集
軽量仮想化基盤の Docker
今ハマる三つの使い道
軽量仮想化基盤のDocker
今ハマる三つの使い道
そろそろ、コンテナー型の軽量仮想
「まずは、何に使えばよいのだろうか」
なのか把握しておこう。従来の仮想マ
化基盤である「Docker」を使ってみ
と思案に暮れてしまうだろう。そこで
シンと比べると分かりやすい(図1)
。
るか―。こう考えるエンジニアが急
この記事では、先駆的にDockerを利
仮想マシンはホストOS上でハードウ
用している六つの事例を整理する形
エアを仮想的に再現し、そこにゲスト
で、Dockerの使い道を示す。
OSを導入して動かす。一方、Docker
増
注1
している。
期 待 が 高 ま っ て い る と は い え、
Dockerはバージョン1.0が2014年6月に
リリースされてからまだ1年にも満たな
い新しい技術。いざ利用するにしても、
仮想マシンとの使い分けが重要
最初に、Dockerがどのようなもの
のコンテナーは、ホストのOSカーネル
上でプロセスをグループ化して分離す
るもの。1組のプロセス群が、独立した
サーバーとして機能する。
従来の仮想化ソフト
仮想マシン
アプリ
ミドルウエア
ゲストOS
仮想マシンはゲストOSを自由に選
Docker
べる一方で、起動が遅く、処理のオー
コンテナー
仮想マシンごとに
OSが起動し、
ハー
ドウエアを再現し
たもの
ハイパーバイザー
ホストOS
メリット
独立性が高く複数のOSを使える
デメリット
処理のオーバーヘッドが大きい
アプリ
ミドルウエア
プロセスをグループ
化したもの
軽量で起動が速い。
Dockerエンジン
加えて、Dockerではテキストファイ
OS(Linuxカーネル)
デメリット
異なるOSのアプリは使えない
どちらも一長一短が
あって、
目的に応じた
使い分けが重要
1 コンテナーがもたらすDockerのメリット
図
Dockerはコンテナーという単位でアプリケーションの実行環境を分離する。仮想マシンに比べ、軽量で使い
捨てがしやすいなどのメリットがある
42
NIKKEI SYSTEMS 2015.3
Dockerのコンテナーは、ゲストOS
(Linuxカーネル)を選べないものの、
ライブラリなど
メリット
軽量で使い捨てが容易
バーヘッド が 大 き い。 そ れ に 比 べ
ルにコンテナーの構成を書くだけで
サーバーを容易に構築できるので、サー
バーを使い捨てても惜しくない。アプ
リケーションが動作する状態のコンテ
ナーを独自にイメージ化し、複数ユー
ザーで共有したり、大量のサーバーに
<イラスト:中山成子>
使い道1
取り組みやすさ
★★★
使い道2
開発環境で利用
本番用サーバー
本番環境の全体に利用
ビルド、
テス
コンテナー ト、デプロイ
を実行
現段階では開発環境での利用が多い。
Dockerを使ってみるなら、
まずはここから
負荷に応じてスケール
アウトする
本番用サーバー
開発用サーバー
コンテナー
取り組みやすさ ★
使い道3
本番環境の一部に利用
リポジトリー
ソース
コード
取り組みやすさ ★★
Webサーバー
特定の用途向けの
コンテナーを用意
APサーバー
Webサーバー
APサーバー
Webサーバー
APサーバー
Webサーバー
本番環境での利用だが、
シンプルな構成なので導入しやすい
APサーバー
本番環境でWebのオンデマンド処理に利用。
ノウハウが必要となりハードルが高い
特 集
2 Dockerの三つの使い道
図
最も取り組みやすいのは開発環境に導入する使い道1。使い道2や使い道3のように本番環境への導入も始まっている
ので、現状多くのユーザーはこうした
利用は、Docker活用の最終段階とも
仮想マシンとDockerには、それぞれ
使い方をしている。
い え る。 システム の 主 た る 要 素 を
一長一短がある。どちらかが一方的に
開発環境への導入は、本番環境での
Dockerのコンテナー上に実装する。
優れているというものではない。それ
活用の布石にもなる。レッドハットの
このとき、一つのコンテナーでは一つ
ぞれの特徴を踏まえて、用途や目的に
岩尾はるか氏(サービス事業統括本部
あるいは少数の機能(プロセス)だけ
応じて使い分けることが重要になる。
プラットフォームソリューション統括
動かす。こうすることでコンテナーの
部 ストレージソリューションアーキテ
入れ替えや追加起動などによって、機
クト クラウドエバンジェリスト)は、
能増強やスケールアウトがしやすい柔
Dockerが登場してからまだ日は浅
「開発で安定して使えることが分かり、
軟なシステムを作れる。このようにコ
いものの、Web上でサービスを提供す
ノウハウも蓄積できると、次は本番環
ンポーネント化された軽量なサービス
る企業を中心に、既に本格的な活用が
境への導入という話になる」
と述べる。
を連携させるアーキテクチャーは、マ
始まっている。そうした事例から、
もっとも、Dockerを本番で使うには、
イクロサービスなどと呼ばれる。
Dockerには大きく次の三つの使い道
活用情報が必ずしも十分ではない、ベ
以下では、先進ユーザー 6社の事例
があることが分かった。
「開発環境で
ンダーによる手厚いサポートが期待で
を基に、これら三つの利用法を紹介し
利用」
「本番環境の一部に利用」
「本番環
きないといった課題を乗り越える必要
ていく。Dockerによって従来の課題
境の全体に利用」―である(図2)
。
がある。
がどう解決されたのか、Dockerの利
この並びの順に、利用の難易度が高く
二つめの本番環境でシステムの一部
用において直面している問題には何が
なる。
に利用とは、システムで実施する処理
あるのかなど、実際に使ったからこそ
開発環境での利用とは、Dockerコ
のうち、仮に問題が起こったとしても
分かるDockerのメリットやデメリッ
ンテナーを使って、常にクリーンな環
再実行すれば済むものや、機能が比較
トをぜひ知ってほしい。Docker活用
境(インストール直後の状態)でプロ
的に単純なものに限って、Dockerコ
について検討する際に、必ずや参考に
グラムのビルドやテストを実行するこ
ンテナーに載せる取り組みを指す。開
なるはずである。
となどだ。コンテナーの「使い捨てて
発環境で使う場合より難易度が上がる
も惜しくない」という特徴が最も生き
ものの、コンテナーの構成がシンプル
る活用方法といえる。開発環境ならば
なので導入しやすい。
まずは開発環境で使うのが定石
「試しに入れてみる」こともしやすい
三つめの本番環境でシステム全体に
軽量仮想化基盤の Docker
今ハマる三つの使い道
配布したりすることも簡単にできる。
注1)こう考えるエンジニアが急増
例えば、1月17日に東京・飯田橋で開催されたDocker
の勉強会「Docker Meetup Tokyo #4 オープンソー
スの軽量コンテナDockerを使おう!」には、180人の定
員に対して3.5倍以上(640人)の申し込みが殺到した。
NIKKEI SYSTEMS 2015.3
43