ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

Docker Swarmの紹介

編集済み 16 数時間前 によって ExtremeHow 編集チーム

ドッカーオーケストレーションスウォームモードコンテナデブオプスクラスタ管理スケーリング設定コマンドラインアプリケーションデプロイメント

Docker Swarmの紹介

翻訳が更新されました 16 数時間前

Docker Swarmは、Dockerノードのクラスターを作成および管理するためのツールです。これは大規模にコンテナを編成する方法を提供し、複数のノードにわたってDockerコンテナをデプロイ、スケール、および管理することができます。これは高可用性と負荷分散が必要なアプリケーションにとって不可欠です。

前提条件

Docker Swarmを設定する前に、LinuxマシンにDockerをインストールする必要があります。レジリエントなSwarmクラスターを作成するためには、少なくとも3つのノード(1つのマネージャーと2つのワーカー)があることをお勧めします。すべてのノードが同じネットワーク上にあり、互いに通信できることを確認してください。

ステップ1: Dockerバージョンを確認する

まず、すべてのマシンにDockerがインストールされていることを確認します。各マシンで次のコマンドを実行することでDockerのバージョンを確認できます。

docker --version

Dockerがインストールされていない場合は、Ubuntu、CentOSなどのディストリビューション用の公式Dockerインストールドキュメントに従うことができます。

ステップ2: マネージャーノードでスワームを初期化する

Linuxマシンの1つをSwarmマネージャーとして選びます。マネージャーノードはクラスターを管理し、サービスを編成する役割を担います。

マネージャーノードで次のコマンドを使用してスワームクラスターを開始します:

docker swarm init --advertise-addr <MANAGER-IP>

<MANAGER-IP>をマネージャーノードのIPアドレスに置き換えます。このコマンドを実行した後、DockerはこのSwarmにワーカーノードを参加させるためのコマンドを出力します。このコマンドを必ずメモしておきます。すぐに使用することになります。

ステップ3: ワーカーノードをスワームに追加する

各ワーカーノードで、マネージャーノードでの初期化後にDocker Swarmが提供した参加コマンドを実行します。コマンドは次のようになります。

docker swarm join --token SWMTKN-1-xxxxxxxx <MANAGER-IP>:2377

このコマンドには、Swarmセットアップに特有のトークンとマネージャーのIPアドレスが含まれています。このコマンドを各ワーカーノードで実行します。成功すると、ターミナルにはノードがSwarmに参加したことを示す確認メッセージが表示されます。

ステップ4: Swarmインストールを確認する

ワーカーノードが正常にスワームに参加したことを確認するには、マネージャーノードに戻ります。すべてのノードを表示するには、次のコマンドを実行します:

docker node ls

このコマンドを実行すると、マネージャーやワーカーを含むスワーム内のノードのリストが表示されます。出力には各ノードのステータスとその役割が表示されます。

ステップ5: Docker Swarmにサービスをデプロイする

Docker Swarmを設定したので、Swarmにサービスをデプロイできます。Docker Swarmでのサービスは、Swarmでコンテナがどのように実行されるかを定義するタスクです。

次に、シンプルなサービスをデプロイする例を示します:

docker service create --replicas 3 --name hello_world alpine ping docker.com

このコマンドは、"hello_world"という名前のサービスを作成し、Alpine Linuxコンテナの3つのレプリカを、docker.comに対してpingを実行します。Docker Swarmはこれらのレプリカを自動的にノードに分配します。

ステップ6: サービスを管理する

Swarm内で実行中のすべてのサービスを一覧表示するには、マネージャーノードで次のコマンドを使用します:

docker service ls

特定のサービスに関する詳細情報を取得し、実行中のタスク(またはコンテナ)を含む情報を取得するには次を使用します:

docker service ps <service_name>

たとえば、既にデプロイされた "hello_world" サービスを検査するには次のようにします:

docker service ps hello_world

ステップ7: サービスの拡張

Docker Swarmの利点の1つは、サービスを容易にスケールできることです。次のようにサービスのレプリカの数を増減できます:

docker service scale hello_world=5

このコマンドは、"hello_world" サービスの実行中のレプリカの数を5に増やします。Docker Swarmはこれらの追加レプリカの配置を管理し、適切な負荷分散を確保します。

ステップ8: サービスを更新する

実行中のサービスの設定を停止することなく更新できます。たとえば、サービスで使用されるイメージのバージョンを変更できます。

docker service update --image alpine:latest hello_world

これにより、"hello_world" サービスが最新のAlpineイメージを使用するように更新されます。Docker Swarmはローリングアップデートを実行し、停止せずに古いタスクを新しいタスクに置き換えます。

ステップ9: サービスを削除する

サービスが不要になった場合、次のコマンドを実行して削除します:

docker service rm hello_world

このコマンドは、スワームから指定されたサービスを削除し、関連するすべてのレプリカを停止します。

ステップ10: スワームから退出する

ワーカーノードをスワームから削除することにした場合、ワーカーノードで次のコマンドを実行してスワームを離れます:

docker swarm leave

マネージャーノードを削除したい場合や再起動したい場合は、次を使用します:

docker swarm leave --force

結論

Linux上でDocker Swarmを設定することで、複数のノードにわたってコンテナを効率的に管理およびスケールできます。このガイドは、Docker Swarmの開始、ノードの追加、サービスのデプロイ、サービスのスケール、サービスの更新、最終的にノードとサービスの削除に至るまでの手順を説明しています。

Docker Swarmを実装することで、高可用性、負荷分散、簡素化されたコンテナ管理を提供する大きな一歩を踏み出すことができます。ネットワーク構成や安全なノード通信など、Docker Swarmの機能をさらに探索できます。

この知識は、高度なデプロイメントを構築し、CI/CDパイプラインと統合して開発プロセスとデリバリープロセスを自動化するための確固たる基盤となります。

記事の内容に誤りがある場合, あなたは


コメント