Docker Swarmは、Dockerホストのプールを単一の仮想Dockerホストに変えるDockerコンテナ用のネイティブクラスタリングおよびスケジューリングツールです。コンテナオーケストレーションにDocker Swarmを使用するには、次の一般的な手順に従ってください。
docker swarm init
実行します。このコマンドは、他のノードが群れを結合するために使用できるトークンを提供します。docker swarm join --token <token> <manager-ip>:<port></port></manager-ip></token>
Workerノードで。docker service create
を使用してサービスを展開できます。たとえば、 <code>docker service create --name myservice --replicas 3 nginx</code> Nginxコンテナの3つのインスタンスを開始します。docker service scale
でサービスを上下にスケーリングできます。たとえば、 <code>docker service scale myservice=5</code> myservice
サービスを5つのインスタンスにスケーリングします。docker stack deploy
を使用して、Docker-Composeファイルで定義されたマルチサービスアプリケーションを展開し、 docker node
コマンドを盗みにしてswarmのノードを管理します。docker network create -d overlay my-network
を使用してオーバーレイネットワークを作成できます。これらの手順に従うことにより、Docker Swarmを使用してコンテナをオーケストレーションし、ニーズに応じて展開、管理、およびスケーリングされるようにします。
Docker Swarmクラスターのセットアップには、マネージャーノードの初期化とクラスターにワーカーノードを追加することが含まれます。ここに詳細な手順があります。
群れの初期化:マネージャーノードとして使用するマシンで、実行します。
<code>docker swarm init</code>
このコマンドは、群れを初期化し、ワーカーノード用の結合トークンを提供します。
ワーカーノードに参加:各ワーカーノードで、Managerノードのdocker swarm init
が提供するコマンドを実行します。コマンドは次のようになります:
<code>docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 192.168.99.100:2377</code>
群れの確認:マネージャーノードに戻ると、次のような群れのステータスを確認できます。
<code>docker node ls</code>
これにより、群れのすべてのノードがリストされ、そのステータスとマネージャーであるかワーカーかを示します。
オーバーレイネットワークの作成:オプションで、サービスが通信するためのオーバーレイネットワークを作成します。
<code>docker network create -d overlay my-overlay-network</code>
これらの手順に従うことにより、基本的なDocker Swarmクラスターがセットアップされ、サービスを展開する準備ができています。
Docker Swarmのサービスの管理とスケーリングは簡単で、いくつかのコマンドで行うことができます。主要な操作は次のとおりです。
サービスの作成:新しいサービスを作成するには、 docker service create
コマンドを使用します。例えば:
<code>docker service create --name myservice --replicas 3 nginx</code>
このコマンドは、Nginxコンテナの3つのレプリカを備えたmyservice
という名前のサービスを作成します。
サービスのスケール:サービスを上下にスケーリングするには、 docker service scale
コマンドを使用します。たとえば、 myservice
5つのレプリカにスケーリングするには:
<code>docker service scale myservice=5</code>
サービスの更新:実行中のサービスの構成を更新するには、 docker service update
コマンドを使用します。たとえば、 myservice
の画像をNginxの新しいバージョンに変更するには:
<code>docker service update --image nginx:latest myservice</code>
ロールバックサービス:更新後にサービスを前の状態にロールバックする必要がある場合は、 docker service rollback
コマンドを使用します。
<code>docker service rollback myservice</code>
リストサービス:群れのすべてのサービスを表示するには、以下を使用してください。
<code>docker service ls</code>
サービスの検査:サービスに関する詳細情報を取得するには、以下を使用してください。
<code>docker service inspect myservice</code>
これらのコマンドを使用することにより、Docker Swarmクラスター内でサービスを効果的に管理および拡大し、アプリケーションの要求を満たすことができます。
Docker Swarmの展開を保護することは、アプリケーションとデータを保護するために重要です。次に、次のようなベストプラクティスをいくつか紹介します。
TLSを使用するには、スウォーム通信:swarmノード間のすべての通信がTLSを使用して暗号化されていることを確認してください。これは、swarmの初期化中に以下を設定できます。
<code>docker swarm init --advertise-addr <manager-ip> --listen-addr <manager-ip>:2377 --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem</manager-ip></manager-ip></code>
結合トークンを回転します:結合トークンを定期的に回転させて、許可されていないノードが群れに結合するのを防ぎます。次のコマンドを使用します。
<code>docker swarm join-token --rotate worker docker swarm join-token --rotate manager</code>
機密データにシークレットを使用する:Docker Secretを使用して、パスワードやAPIキーなどの機密データを管理します。秘密は安静時および輸送中に暗号化され、アクセスはしっかりと制御できます。
<code>echo "my_secret_password" | docker secret create my_secret -</code>
docker system prune
アップします。これらのベストプラクティスに従うことにより、Docker Swarmの展開のセキュリティを大幅に強化し、潜在的な脅威からアプリケーションとデータを保護できます。
以上がコンテナオーケストレーションにDocker Swarmを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。