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 つをワーカー(worker1
とworker2
)とします。
メモ
このチュートリアルに示す手順の多くは、単一ノードの 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
を実行すれば、利用可能なネットワークインターフェースの一覧を確認できます。
このチュートリアルではmanager1
が192.168.99.100
であるものとします。
ホスト間でのプロトコルとポートの開放
以下のポートの利用が必要です。 システムの中には、デフォルトでこれらのポートはすでに開放されているものがあります。
- TCP ポートの 2377、クラスター管理における通信のため
- TCP および UDP ポートの 7946、ノード間の通信のため
- UDP ポートの 4789、オーバーレイネットワークのトラフィックのため
オーバーレイネットワークを暗号化(--opt encrypted
)込みで生成する場合は、ip protocol 50 (ESP) を許可しておく必要があります。
次にすることは
環境を整えたら、次に Swarm の生成 を行います。
tutorial, cluster management, swarm mode