Dockerが注目されている理由を探る
Dockerの使い道
ではDockerを利用し始めるにあたって、一体どこから導入を始めれば良いのだろうか?筆者が考えるDocker利用の3ステップをご紹介しよう。
最初の使い方
実際にDockerを使い始めるに際しては、テスト環境としての利用が良いだろう。リスクを抑え、なおかつDockerの持ち味を活かせるからだ。最初にテストに必要な設定を構築し、Dockerイメージとして保存する。後はテストのたびに最初に構築したDockerイメージからコンテナを作成し、テストを行えば良い。もしバグが発生すれば、コンテナをイメージとして保存すれば良い。こうすることで、バグ発生時の状態を確実に再現出来る。
次の使い方
次のステップとしては、開発環境にDockerを利用することをお勧めしている。テストの時と同様、必要な設定を最初に構築しDockerイメージとして保存する。後は作成したイメージからコンテナを立ち上げて、利用するだけで良い。Dockerを用いて開発を行う場合、非常に大きなメリットがある。それはユーザ個々の環境で発生しうる特定環境によるエラー等がなくなることだ。開発環境が配布出来る状態(コンテナ)として完成していれば、チームに新規参画者が来たとしても1時間もあれば、開発に取り掛かってもらえることだろう。
最後に目指す使い方
最終的なステップとしては、Dockerコンテナを本番環境としてWebサービス等のサービス提供基盤での利用を目指すべきだろう。コンテナだけをセキュアに外部公開するには少々骨が折れることだろうが、外部ツールと組み合わせて利用することよって実現可能になっている。公開期間が終了すれば、コンテナをイメージ化して保存することによって、再度必要になった時にも環境ごと復元出来る。
Dockerの魅力を探る
最後に、筆者の考える「Dockerが注目される理由」を、技術者と企業のそれぞれの視点から紹介しよう。
技術者が注目する理由としては、大きく以下の3点が考えられる。
- OSS技術であること
特定ベンダーにロックインされることなく、技術検証や周辺ツールの開発が行いやすい。 - オーバーヘッドが小さいこと
ハイパーバイザのような仮想OS部分がないため、家庭用のPCでも利用出来るほど軽量・高速である。わざわざ専用機材を購入しなくても、どこでもいつでもDockerに触れられる。 - インフラをコードに出来ること
仮想環境をゼロからコード化し、自動化する技術は、これまでOSS界隈では存在しなかった。このようなDocker独自のおもしろさが技術者を引き付けている。
一方、技術を採用する立場である企業がDockerに注目する理由としては、以下の2点が考えられる。
- 独自のコンテナ技術の置き換え
Googleのコンテナ技術やRed HatのGear等、各社が独自に利用してきたコンテナ技術とそのノウハウをDockerへ伝えることによって、これまで利用してきた独自コンテナ技術をDockerへ置き換えたいのではないだろうか? この置き換えが進み、Dockerがコンテナ技術のデ・ファクト・スタンダードとなった時、利用者はGoogleのIaaS環境からRed HatのPaaS環境へとDockerを移動させるといったような移行が、容易に行えるようになる。 - 業界全体への技術支援
コンテナ技術というのは元々Solaris Container等、商用製品での利用が活発だった。そのため、オープンな技術として伝聞されてこなかったということも多分にあるだろう。このような背景から、コンテナ技術はこれまで注目されていなかった。Dockerの登場により、OSSの世界にもコンテナ技術が登場したことから、ノウハウを持っている各社は参画して技術支援を図り、業界全体のスキルアップを狙っているのではないだろうか。