bogon:~ zhangfei$ docker-machine ssh manager1 "docker swarm init --advertise-addr 192.168.64.2"
Swarm initialized: current node (5lyi9tkwqyugnk9626f5jhamy) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-318b8k07lgqj85ttgjrisl5yg9plqt4qr43ly2b1xsg80i6czr-7bthlott3bl8lqqvemsxothmv 192.168.64.2:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
接着在worer1和worker2节点上创建worker节点,并加入集群,上面已经给出了提示命令。
bogon:~ zhangfei$ docker-machine ssh worker1 "docker swarm join --token SWMTKN-1-318b8k07lgqj85ttgjrisl5yg9plqt4qr43ly2b1xsg80i6czr-7bthlott3bl8lqqvemsxothmv 192.168.64.2:2377"
This node joined a swarm as a worker.
bogon:~ zhangfei$ docker-machine ssh worker2 "docker swarm join --token SWMTKN-1-318b8k07lgqj85ttgjrisl5yg9plqt4qr43ly2b1xsg80i6czr-7bthlott3bl8lqqvemsxothmv 192.168.64.2:2377"
This node joined a swarm as a worker.
bogon:~ zhangfei$
查看集群节点信息
docker@manager1:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
5lyi9tkwqyugnk9626f5jhamy * manager1 Ready Active Leader 19.03.5
r01xh6k73cj24yqrmtau3bsqf worker1 Ready Active 19.03.5
5hkzm4ogghgbt6bale2bo7lf5 worker2 Ready Active 19.03.5
docker@manager1:~$
#docker service 拉取nginx镜像
docker@manager1:~$ docker service create --replicas 3 -p 8088:80 --name nginx nginx:latest
#也可以使用scale命令手动扩展服务个数
docker@manager1:~$ docker service scale 3
服务部署好查看服务
#服务部署好查看服务
docker@manager1:~$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
ja2xjj0dn08m nginx replicated 3/3 nginx:latest *:8088->80/tcp
docker@manager1:~$ docker service ps nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
py9f7w78a95c nginx.1 nginx:latest manager1 Running Running 12 minutes ago
ghv07io2w1hv nginx.2 nginx:latest worker1 Running Running 12 minutes ago
y00d8c0xadil nginx.3 nginx:latest worker2 Running Running 12 minutes ago
docker@manager1:~$ docker stack deploy -c docker-compose.yml deploy-test
Creating network deploy-test_default
Creating service deploy-test_aspnetcore
Creating service deploy-test_nginx
查看服务
docker@manager1:~$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
8au30q7tblq0 deploy-test_aspnetcore replicated 3/3 mcr.microsoft.com/dotnet/core/samples:aspnetapp *:8088->80/tcp
367gpz567iiv deploy-test_nginx replicated 3/3 nginx:latest *:8087->80/tcp
查看到服务名称,然后可以根据服务名称查看服务运行状况
docker@manager1:~$ docker service ps deploy-test_nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ov75hjkdux6i deploy-test_nginx.1 nginx:latest worker1 Running Running 27 seconds ago
bcq2zw5p33cb deploy-test_nginx.2 nginx:latest worker2 Running Running 27 seconds ago
cfhbisbab3op deploy-test_nginx.3 nginx:latest manager1 Running Running 27 seconds ago
到这一步,我们可以打开三台主机的任意一台,看下8088端口和8087端口的服务。
asp.net core 服务
#先暂停stack
docker@manager1:~$ docker stack down deploy-test
Removing service deploy-test_aspnetcore
Removing service deploy-test_nginx
Removing network deploy-test_default