在网上找了大量资料,全都是无法正常用的,最后还是查阅了大量官方文档,才最终解决
所有服务器节点开放这几个端口
这里需要注意一下,4789这个端口
在云厂商主机(腾讯云,阿里云等…) 4789这个端口为系统保留端口,不对外开放。所以我们要改成5789或其他端口
所有服务器的端口开放完毕后接下来
#所有节点 安装swarm
docker pull swarm
#主节点初始化
docker swarm init --autolock=false --advertise-addr 这里写主节点的外网IP --data-path-port 5789
#从节点加入主节点时必须加--advertise-addr 参数 (--advertise-addr值为从节点的外网ip)不写的话
#我们打印日志 journalctl -u docker --no-pager 会发现主节点找的是从节点的内网IP去连接,然后一直超时。。。
#这个docker swarm join 可以参考我这个,因为执行主节点初始化后,会自动生成token,每个token都不一样
docker swarm join --token SWMTKN-1-0w2otqddvl4lqej10on3zwt2651gle5ovbpanqwnunu51gu50e-c3t7bop82r1r88g47gxkfcmix 这里写主节点的外网IP:2377 --advertise-addr 这里是当前从节点的外网IP
运行完毕后,去主节点执行
#可以查看到所有加入当前主节点集群的节点
docker node ls