Docker Swarm 概要

Docker Swarm は Docker に対応するネイティブなクラスタリング用ツールです。Docker Swarm は標準 Docker API で操作できます。そのため、Docker ホスト群を集め、1つの仮想 Docker ホストとして扱えます。既に Docker デーモンと通信可能なツールであれば、Swarm を使うだけで、意識せずに複数のホストにスケール可能になります。以下のツールをサポートしていますが、これだけに限りません。

  • Dokku
  • Docker Compose
  • Krane
  • Jenkins

そしてもちろん、swarm は Docker クライアントでの操作もサポートします。

他の Docker プロジェクトと同様に、Docker Swarm は “swap, plug, and play”(交換して、取り付けて、実行)の原理に従います。開発初期においては、API はバックエンドを取り替え可能(pluggable)となるよう開発する方針に落ち着きました。つまり、Docker Swarm が利用するスケジューリングのバックエンドとは、任意に置き換え可能であるのを意味します。Swarm の取り替え可能な設計により、多くの場面でスムーズかつ独創的な体験を提供します。また、Mesos のような、より強力なバックエンドに取り替えれば、大規模なプロダクション(本番環境)へのデプロイも可能となります。

Swarm クラスタ作成を理解

自分のネットワーク上で Swarm クラスタ(訳注;”Swarm”=群れ、の意味)を形成するには、まず Docker Swarm イメージを取得します。それから Docker で Swarm マネージャを設定し、Docker Swarm を実行したい全てのノードを設定します。この作業には以下の手順が必要です。

  • Swarm マネージャと各々のノードと通信ができるよう TCP ポートを開く
  • 各々のノードに Docker をインストールする
  • クラスタを安全にするため、TLS 証明書を作成・管理する

管理者が経験を積むため、あるいはプログラマが Docker Swarm に貢献するために、手動でのインストールは最適な方法です。あるいは、docker-machine を使って Swarm をインストールする方法もあります。

Docker Machine を使えば、Docker Swarm をクラウド・プロバイダや自分のデータセンタに素早くインストールできます。ローカルのマシン上に VirtualBox をインストールしていれば、ローカル環境上で Docker Swarm を素早く構築し、試すことができます。Docker Machine はクラスタを安全にするために、証明書を自動生成します。

初めて Docker Swarm を使うのであれば、Docker Machine を使う方法が一番です。推奨する方法で進めるには、 Swarm を検証環境で試すには をお読みください。

手動でのインストールや開発に対する貢献に興味があれば、 プロダクション用の Swarm クラスタ構築 をご覧ください。

ディスカバリ・サービス

コンテナ内のサービスを動的に設定・管理するには、Docker Swarm とディスカバリ用のバックエンドを使います。利用可能なバックエンドに関する情報は、ディスカバリ・サービスのドキュメント をお読みください。

高度なスケジューリング

高度なスケジューリングについては、strategies(ストラテジ)filters(フィルタ) の各ドキュメントをお読みください。

Swarm API

Docker Swarm APIDocker リモート API と互換性があります。そのため、新しいエンドポイントの追加時には、Swarm も同時にエンドポイントを拡張します。

ヘルプを得るには

Docker Swarm はまだ開発途上であり、活発に開発中です。ヘルプが必要な場合、貢献したい場合、あるいはプロジェクトの同志と対話したい場合のため、私たちは多くのコミュニケーションのためのチャンネルを開いています。

  • プロジェクトのメンバとリアルタイムに会話したければ、IRC の #docker-swarm チャンネルにご参加ください。

より詳細な情報やリソースについては、私たちの ヘルプ用ページ をご覧ください。

参考

Docker Swarm overview
https://docs.docker.com/swarm/overview/