はじめに
Docker Swarm は、開発者が複数の Docker ホストを統合されたスケーラブルなインフラストラクチャに変換することを可能にする、強力なコンテナオーケストレーションソリューションです。この包括的なチュートリアルでは、Docker Swarm クラスタの作成、構成、管理について詳細な洞察を提供します。重要な概念、ノードタイプ、サービスデプロイメント戦略、堅牢なコンテナ化された環境構築のためのベストプラクティスを網羅しています。
Docker Swarm は、開発者が複数の Docker ホストを統合されたスケーラブルなインフラストラクチャに変換することを可能にする、強力なコンテナオーケストレーションソリューションです。この包括的なチュートリアルでは、Docker Swarm クラスタの作成、構成、管理について詳細な洞察を提供します。重要な概念、ノードタイプ、サービスデプロイメント戦略、堅牢なコンテナ化された環境構築のためのベストプラクティスを網羅しています。
Docker Swarm は、Docker 環境のためのネイティブなクラスタリングおよびコンテナオーケストレーションソリューションです。開発者は、Docker ノードのクラスタを作成および管理し、複数の Docker ホストを単一の仮想 Docker ホストに変換できます。
| ノードタイプ | 説明 | 役割 |
|---|---|---|
| マネージャーノード | クラスタの状態を制御 | オーケストレーション、スケジューリング |
| ワーカーノード | コンテナのワークロードを実行 | サービスの実行 |
## プライマリノードで Swarm を初期化
docker swarm init --advertise-addr 192.168.1.100
## ワーカー参加トークンを生成
docker swarm join-token worker
## ワーカーノードをクラスタに参加させる
docker swarm join --token < トークン > 192.168.1.100:2377
## リプリケートされたサービスを作成
docker service create --replicas 3 --name web nginx
## サービスのスケール変更
docker service scale web=5
## サービスの更新
docker service update --image nginx:latest web
## プライマリマネージャーで Swarm クラスタを初期化
docker swarm init --advertise-addr 192.168.1.100
## クラスタ参加トークンを表示
docker swarm join-token manager
docker swarm join-token worker
## ワーカーノードをクラスタに参加させる
docker swarm join \
--token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxx \
192.168.1.100:2377
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
| Advertise Address | ノードのネットワークインターフェース | プライマリ IP |
| Listen Port | Swarm 通信ポート | 2377 |
| Node Labels | ノード選択のためのメタデータ | なし |
## カスタムノードラベルを追加
docker node update --label-add type=frontend worker1
## ノードの可用性を設定
docker node update --availability drain worker2
## オーバーレイネットワークを作成
docker network create \
--driver overlay \
--subnet 10.0.0.0/24 \
my-network
## 3つのレプリカを持つnginxサービスをデプロイ
docker service create \
--name web-service \
--replicas 3 \
--publish 80:80 \
nginx:latest
| オプション | 説明 | 例 |
|---|---|---|
| --replicas | コンテナインスタンスの数 | 3 |
| --update-parallelism | 並列更新数 | 2 |
| --constraint | ノード配置ルール | node.labels.type==frontend |
## サービスを動的にスケール変更
docker service scale web-service=5
## 水平スケーリング
docker service update \
--replicas-max-per-node 2 \
web-service
## カスタムロードバランシングを持つサービスを作成
docker service create \
--name api-service \
--replicas 4 \
--publish mode=host,target=8080,published=80 \
--update-delay 10s \
api-image:latest
## ロールアウト更新戦略
docker service update \
--image nginx:latest \
--update-parallelism 2 \
--update-delay 10s \
web-service
## アクティブなサービス一覧
docker service ls
## 特定のサービスの詳細情報
docker service ps web-service
Docker Swarm を習得することで、開発者とシステム管理者は、分散システム全体でコンテナ化されたアプリケーションを効果的に管理できます。このチュートリアルでは、クラスタの初期化、ノードトポロジーの設定、サービスのデプロイ、サービスディスカバリ、ロードバランシング、セキュアな通信といった高度な機能を活用するための主要なテクニックを示しています。これらの基本的な理解により、チームはスケーラブルで回復力のあるコンテナインフラストラクチャを構築し、運用効率を高めることができます。