[技術解説]
注目集める「Docker」とは? アプリケーションが確実に動く環境を”イメージ”にまとめ自動配備
2014年12月19日(金)IT Leaders編集部
ここにきてPaaS(Platform as a Service)の領域で注目を集めているのがコンテナ技術の「Docker」。Dockerとは何なのか。「PaaSコンファレンス2014」(主催:インプレス)の特別講演に登壇したレッドハットのクラウドエバンジェリストである中井悦司氏の講演から、Dockerの概要をまとめる。
PaaS(Platform as a Service)領域で、にわかに耳目にするようになったキーワードの1つが「Docker」である。世間では一般的にコンテナ技術の括りで解説されている。だが、それらの関係を誤認しているケースも少なからずある。
Dockerはもともと、パブリックPaaSを提供していた北米のdotCloudのエンジニアが、自社のPaaS基盤を効率化するために開発したものだ。同社が2013年にDockerをオープンソースとして公開すると、その有効性が高く評価され、たちまち広まった。
これを受けて同社は、2014年に社名を「Docker, Inc.」に改め、PaaSのサービスを提供するのではなく、Dockerを組み込んだ製品やサポートを提供する企業へと生まれ変わった。
OS/ライブラリ/フレームワーク…
実行環境を「コードイメージ」に
Dockerは、PaaS環境をどのように効率化するのか。そもそもPaaSは、ユーザーが開発したコードをクラウド上にプッシュしさえすればアプリケーションを確実に稼働できる環境を提供するサービスとして期待されてきた。
しかし実際には、アプリケーションは実行環境と密接に結び付いている。必要なフレームワークやライブラリがなかったり、それらのバージョンが異なっていたりすることが原因で不具合、すなわち想定通りに動かない事象が発生することが多々ある。こうした状況のことをITエンジニアの世界では、「悪魔は細部に宿る」と呼んでいる。
dotCloudは当初、こうした問題に個別対応して実行環境を整えていた。しかし、それではあまりにも効率が悪い。そこでアプリケーションを稼働させるのに必要な環境を自動的にビルドする仕組みを考え出した。それが、Dockerである。
Dockerを使うと、アプリケーションの実行環境を「Dockerイメージ」として自動生成できる(図1)。これは、OSやライブラリ、フレームワークなど、アプリケーションの実行時に必要な要素のすべてを“コードイメージ”としてパッケージングしたものだ。
拡大画像表示
「このDockerイメージをDockerサービスを搭載したサーバー上に配布することにより、確実に動作する実行環境を自在に展開することが可能になる」(中井氏)。こうした仕組みを実装するために、dotCloudがたまたま行き着いたのが、Linuxコンテナ技術だったということになる。
会員登録(無料)が必要です
- 1
- 2
- 次へ >