Docker Swarm¶
Docker Swam (Swarm = 群れ、大群)は、Docker に対応するクラスタリングです。これを使い、Docker ホストのプール(集まり)を作成したりアクセスできます。そのホストには Docker ツール群一式が揃っています。Docker Swarm は標準 Docker API を扱えるので、既に Docker デーモンと通信可能なツールを使い、Swarm で複数のホストへ透過的にスケールできます。サポートしているツールは以下のものですが、これだけに限定されません:
- Dokku
- Docker Compose
- Krane
- Jenkins
そしてもちろん、Docker クライアントを使った Swarm の利用もサポートされています。
他の Docker プロジェクトのように、Docker Swarm は “swap, plug, and play”(交換して、取り付けて、実行)の原理に従います。開発初期においては、API はバックエンドと接続可能(pluggable)なように、開発することに落ち着きました。つまり、スケジューリングのバックエンドを任意なものから、Docker Swarm に置き換えられることを意味します。Swarm は交換可能な設計です。そのため、多くのユース・ケース(事例)において、スムーズに独創的な経験を提供します。また、Mesos のような、より強力なバックエンドに取り替えて、大規模なプロダクション(本番環境)へのデプロイもできるようになります。
クラスタ作成の理解¶
自分のネットワーク上で Swarm クラスタ(訳注;原文では”swarm”=群れ、と書かれていますが、日本語では抽象的なため、以下”Swarm クラスタ”と訳しています)を形成するには、まず Docker Swarm イメージを取得します。それから Docker を使い、swarm manager を設定し、Docker Swarm を実行実行したい全てのノードを設定します。この手順で次のものが必要です。
- swarm manager と各々のノードと通信ができるよう TCP ポートを開く
- 各々のノードに Docker をインストールする
- クラスタを安全にするため、TLS 証明書を作成・管理する
使い始めるにあたり、管理者向けの経験のためや、プログラマが Docker Swarm に貢献するために、手動でのインストール手法は最適でしょう。あるいは、docker-machine
を使って Swarm をインストールする方法があります。
Docker Machine を使えば、Docker Swarm をクラウド・プロバイダや自分のデータセンタに素早くインストールできます。ローカルのマシン上に VirtualBox をインストールしていれば、ローカル環境上で Docker Swarm を素早く構築し、試すことができます。Docker Machine はクラスタを安全にするため、自動的に証明書を生成します。
初めて Docker Swarm を使うのであれば、Docker Machine を使う方法が一番です。この推奨する方法を使うには、 Docker Swarmをはじめましょう をお読みください。
手動でのインストールや開発に対する貢献に興味があれば、 開発環境向けの Swarm クラスタ作成
をご覧ください。
ディスカバリ・サービス¶
コンテナ内のサービスを動的に設定・管理するには、Docker Swarm とディスカバリ用のバックエンドを使います。利用可能なバックエンドに関する情報は、ディスカバリ・サービスのドキュメント をお読みください。
高度なスケジューリング¶
高度なスケジューリングについては、strategies(ストラテジ) と filetes(フィルタ ) のドキュメントをお読みください。
Swarm API¶
Docker Swarm API は Docker リモート API
と互換性があるため、新しいエンドポイントが追加されると、同時に拡張されます。
ヘルプを得るには¶
Docker Swarm は活発に開発中です。ヘルプが必要な場合、貢献したい場合、あるいはプロジェクトの同志と対話したい場合、私たちは多くのコミュニケーションのためのチャンネルを開いています。
- バグ報告や機能リクエストは、 GitHub の issue トラッカー をご利用ください。
- プロジェクトのメンバーとリアルタイムに会話したければ、IRC の
#docker-swarm
チャンネルにご参加ください。
- コードやドキュメントの変更に貢献したい場合は、GitHub にプルリクエスト をお送りください。
より詳細な情報やリソースについては、私たちの ヘルプ用ページ をご覧ください。