🐳 Docker Swarm 集群搭建指南
本指南演示如何初始化一个 Swarm 集群,并将工作节点(Worker)加入该集群。
1. 初始化集群 (Manager 节点)
在作为 管理节点 (Manager) 的服务器上执行初始化命令。
执行命令
bash
docker swarm init --advertise-addr <IP地址>
<IP地址>:请替换为当前服务器的 公网 IP 或 内网 IP 。其他节点将通过此 IP 加入集群。- 示例:
101.42.255.221
- 示例:
命令输出示例
执行成功后,终端将输出类似以下信息:
text
Swarm initialized: current node (zjyxjgdb4dj7z2cvxa8tnvbfi) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1mf5gyircz6fkezjxtjqz3gsnai9sf5qkj7qufpojnmiob46nm-8hranz41dbfghm28owch647b4 101.42.255.221:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
⚠️ 重要提示 :请复制输出中
To add a worker to this swarm...下方的完整docker swarm join ...命令,后续步骤需要使用它。
2. 加入工作节点 (Worker 节点)
登录到需要加入集群的 工作节点 (Worker) 服务器,执行上一步获取的命令。
执行命令
bash
docker swarm join --token <TOKEN> <MANAGER_IP>:2377
<TOKEN>:替换为初始化时生成的 Token(如SWMTKN-1-...)。<MANAGER_IP>:替换为 Manager 节点的 IP 地址。
示例:
bash
docker swarm join --token SWMTKN-1-1mf5gyircz6fkezjxtjqz3gsnai9sf5qkj7qufpojnmiob46nm-8hranz41dbfghm28owch647b4 101.42.255.221:2377
执行成功后,通常提示:This node joined a swarm as a worker.
3. 验证集群状态
回到 Manager 节点,执行以下命令查看集群节点列表。
检查命令
bash
docker node ls
成功输出示例
如果所有节点状态均为 Ready,且 AVAILABILITY 为 Active,则表示集群搭建成功。
text
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
asnk7ncmxfk6l41qi7dvkqxq0 skywidecomputer Ready Active 28.3.2
zjyxjgdb4dj7z2cvxa8tnvbfi * skywidecontroller Ready Active Leader 28.3.2
字段说明:
*:标记当前所在的节点(即执行命令的 Manager 节点)。MANAGER STATUS:Leader:当前主管理节点。- (空):表示该节点为工作节点 (Worker)。
STATUS:Ready表示节点正常连接并可用。
🔧 附录:常用管理命令
-
查看加入令牌(如果之前的命令丢失):
bash# 获取 Worker 加入令牌 docker swarm join-token worker # 获取 Manager 加入令牌 docker swarm join-token manager -
移除节点:
bash# 先在节点自身执行离开命令 docker swarm leave # 如果在 Manager 上强制移除未响应的节点 docker node rm <NODE_ID>