linux 系统安装docker:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
添加 master 节点 - portainer-master.sh
#!/bin/sh
#auto dhy
#IP地址
ipaddress=`hostname -I | awk '{print $1}'`
#开放防火墙端口2375,2377
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
#设置主机名字
hostnamectl set-hostname swarm-master-$ipaddress
#拉取swarm
docker pull swarm
#主节点运行
docker swarm init --advertise-addr $ipaddress
#启动代理
docker run -ti -d -p 2375:2375 --restart=always --hostname=$HOSTNAME --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 docker.io/shipyard/docker-proxy:latest
#启动portainer
docker service create --name portainer -p 9000:9000 --constraint 'node.role == manager' --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock portainer/portainer -H unix:///var/run/docker.sock
执行命令:
chmod +x portainer-master.sh
./portainer-master.sh
添加 node 节点 - portainer-node1.sh
#!/bin/sh
#IP地址
ipaddress=`hostname -I | awk '{print $1}'`
#开放防火墙端口2375,2377
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
#设置主机名字
hostnamectl set-hostname swarm-node-$ipaddress
#拉取swarm
docker pull swarm
#启动代理
docker run -ti -d -p 2375:2375 --restart=always --hostname=$HOSTNAME --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 docker.io/shipyard/docker-proxy:latest
执行命令:
chmod +x portainer-node1.sh
./portainer-node1.sh
在 portainer-master 节点上执行
docker swarm join-token manager
得到:
root@swarm-master-172:~# docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4o2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxizo3whxypmj6xvuj-2jtxjwkvevz2ruinfj3ojpo58 172.10.100.110:2377
root@swarm-master-172:~#
如图所示, 在其他 node 节点上按照提示出的命令执行, 这样就将不同的节点添加到 master 节点上了, 完成了整个集群的管控,可以更好的分配计算机资源。