Swarm モードをはじめよう

このチュートリアルは、Docker Engine の Swarm モード機能を説明するものです。 これをはじめる前に 重要な考え方 を読んでおいてください。

このチュートリアルでは、以下のような作業を進めていきます。

  • Swarm モード内で Docker Engine のクラスターを初期化します。
  • Swarm にノードを追加します。
  • Swarm に対してアプリケーションサービスをデプロイします。
  • 正常に動作させることができたら Swarm の管理を行います。

このチュートリアルでは、端末画面上のコマンドラインから Docker Engine CLI コマンドを利用します。

Docker を初めて使う場合は、Docker Engine について を参照してください。

セットアップ

このチュートリアルを実行するには、以下の項目が必要です。

ネットワーク接続された 3 つのホストマシン

このチュートリアルでは、Docker がインストールされ、互いにネットワーク通信が可能である 3 つの Linux ホストを用います。 このホストは物理マシン、仮想マシン、Amazon EC2 インスタンス、その他のホストのいずれでもかまいません。 Swarm をはじめよう を確認し、ホストとして設定可能なものを選んでください。

このマシンのうちの 1 つをマネージャー(manager1)とし、残りの 2 つをワーカー(worker1worker2)とします。

メモ

このチュートリアルに示す手順の多くは、単一ノードの Swarm を確認する際にも用いることができます。 その場合は、ホストはただ 1 つあれば十分です。 複数ノード用コマンドは動作しませんが、Swarm の初期化、サービス生成、スケール変更は行うことができます。

Linux マシンへの Docker Engine インストール

ホストとして利用するものが Linux ベースの物理コンピューターやクラウドコンピューターである場合は、各プラットフォームに合わせて単純に Linux インストール手順 に従います。 3 つのマシンを設定したら準備が整いました。 Linux マシン上では単一ノード、複数ノードのいずれのシナリオでも作業していくことができます。

Docker Desktop for Mac または Docker Desktop for Windows の利用

別の方法として、手元のコンピューターに最新の Docker Desktop for Mac または Docker Desktop for Windows をインストールして利用することもできます。 このコンピューターからは、単一ノード、複数ノードのいずれの Swarm でもテストすることができます。

  • Docker Desktop for Mac や Docker Desktop for Windows は、Swarm モードにおける 単一ノード の確認や、単一ノードからなる Swarm の初期化、サービス生成、サービスのスケーリングを行うことができます。
  • 現時点において Docker Desktop for Mac または Docker Desktop for Windows を単独で利用するだけでは、複数ノード Swarm を扱うことはできません。 ただし単独ノードの Swarm 設定に対して、数多くの利用例を参考にすることはできます。

マネージャーマシンの IP アドレス

ホストオペレーティングシステムが利用するネットワークインターフェースに対しては、IP アドレスを割り振る必要があります。 Swarm 上のノードはすべて、マネージャーに対して IP アドレスにより接続します。

他のノードからもマネージャーノードの IP アドレスを通じて接続するため、IP アドレスは固定しておく必要があります。

Linux や macOS ではifconfigを実行すれば、利用可能なネットワークインターフェースの一覧を確認できます。

このチュートリアルではmanager1192.168.99.100であるものとします。

ホスト間でのプロトコルとポートの開放

以下のポートの利用が必要です。 システムの中には、デフォルトでこれらのポートはすでに開放されているものがあります。

  • TCP ポートの 2377、クラスター管理における通信のため
  • TCP および UDP ポートの 7946、ノード間の通信のため
  • UDP ポートの 4789、オーバーレイネットワークのトラフィックのため

オーバーレイネットワークを暗号化(--opt encrypted)込みで生成する場合は、ip protocol 50 (ESP) を許可しておく必要があります。

次にすることは

環境を整えたら、次に Swarm の生成 を行います。

tutorial, cluster management, swarm mode