概要
2014年末の DockerCon EUで発表された公式のオーケストレーションツール Machine, Swarm, Compose のうち Swarm についてのまとめ。
2015年02月26日にダウンロード可能な最初のバージョンが出た
Swarm を一言で説明するならば、複数ホスト環境でも1ホストと同じように Docker を扱えるツール。
Machine, Compose については以下参照
Swarm とは
Swarm は Docker 環境をクラスタリングするツール。
swarm ができること
- Docker コンテナを使ったシンプルなセットアップ
- リソースマネジメント / スケジューリング
- 既存の Docker Remote API と互換性のある Docker Swarm API を提供
- 指定した条件を満たすホストでのコンテナの起動
- あのコンテナとこのコンテナは同じホストに / 違うホストに、ができる
- TLS
既存の Docker API と互換性があるというのは非常に強力で、 Dokku や Fig (compose) といった 1 ホストで使っていたツールも複数ホスト環境で利用できるようになるということ。
またリソースマネジメントの仕組みは Mesos ほど高機能ではないが、シンプルで現実的、実用的という印象。
2015年02月27日現在はベータ版という扱い
Swarm の基本的な考え方
- 極めて簡単に使い始められる
- 既存の Docker API との互換性がある
- サービスディスカバリやスケジューリング機能は標準装備だが別のを使うこともできる
インストール
swarm は Docker コンテナとして動かすようになっているので、イメージを取得してくるだけでよい。
$ docker pull swarm:latest
注意点としては、
- swarm を利用する環境の Docker のバージョンが揃っていること
- Docker のバージョンが 1.4.0 以上であること
Hello World
Docker Swarm を使ってマルチホスト環境で Hello World コンテナを動かす
[WIP] How It Works
- Swarm は各 Node の Docker Remote API を tcp 経由で使う
[WIP] Machine を使って Swarm クラスタを構築する
[WIP] TLS
[WIP] スケジューリング
[WIP] Swarm API
Compose 連携
Swarm と組み合わせて Compose(Fig) をマルチホスト環境で使う