Clockerはクラウドを意識しない方法で,過剰なコンテナを生成せずにDockerコンテナを立ち上げるためのオープンソースプロジェクトだ。マルチクラウドアプリケーションの管理ソフトウェアであるApache Brooklynをベースとする。
Clockerの機能は次のようなものだ。
- クラウドインフラストラクチャ上で,複数のDockerホストを自動的に生成および管理。
- 対障害性,スケーリング性,リソースの有効利用に配慮した,インテリジェントなコンテナ配置。
- Dockerホストの基盤インフラストラクチャとして,任意のパブリックおよびプライベートクラウドを使用可能。
- 既存のBrooklyn/CAMPブループリントを,修正なしでDockerロケーションに展開可能。
この動作の概要については,Brookyのサポート企業であるCloudsoftによる記事に説明がある。
Brooklynでは,クラウドAPI非依存ライブラリであるApache jcloudsを使用して,クラウド仮想マシンとのセキュアな通信(SSH)の提供と設定を行っています。Dockerアーキテクチャは,‘ホスト’マシン上の‘コンテナ’を提供します。Brooklynはjcloudsを使用してクラウドマシンを提供し,それをDockerホストとして使用しています。
BrooklynはDockerfileを使って,Dockerコンテナ上でSSHサーバを利用可能にする。これによって各コンテナを仮想マシンのように扱うことができる。Brooklynはアプリケーション,すべてのDockerホスト,すべてのDockerコンテナ,さらにはアプリを構成するソフトウェアのすべてからセンサデータを受信するとともに,それらの変更に影響を与えることができる。これにより,Dockerクラウド全体にわたるアプリの配布を管理することが可能になる。
クラウドベンダ 独自のDockerサポートに比較したClokerのメリットはポータビリティと,プライベートクラウドも活用可能である点だ。
BrooklynとDocker, jcloudsドライバとの併用に関する詳細については,これらの 記事を参照するとよいだろう。