目录
一、Docker Swarm集群部署应用服务
1、部署nginx服务
步骤一、创建应用服务网络
- 创建nginxtestnet网络
[root@manager ~]# docker network create -d overlay nginxtestnet
5zi3i7wi0ob91nm6fix76ev56
- 查看网络是否成功创建
[root@manager ~]# docker network ls | grep nginxtestnet
5zi3i7wi0ob9 nginxtestnet overlay swarm
步骤二、部署Nginx服务
--replicas:指定副本数
--network:指定服务使用的网络
--name:指定应用名称
-p:指定映射到worker主机8082端口
nginx:指镜像,此处拉取最新镜像
[root@manager ~]# docker service create --replicas 1 --network nginxtestnet --name nginx_test -p 8082:80 nginx
rikgegyi7ib5gxqlwupwnutpo
overall progress: 1 out of 1 tasks
1/1: running [==================================================>]
verify: Service converged
步骤三、查看服务是否成功创建
[root@manager ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
rikgegyi7ib5 nginx_test replicated 1/1 nginx:latest *:8082->80/tcp
步骤四、查询服务信息
--pretty 使命令输出格式化为可读的格式
[root@manager ~]# docker service inspect --pretty nginx_test
步骤五、查询nginxtest运行节点
[root@manager ~]# docker service ps nginxtest
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
lywqrgljuhfo nginx_test.1 nginx:latest manager Running Running 8 minutes ago
可以看到nginx_test服务运行在manager节点,所以访问http://192.168.110.50:8082/,即可访问到这个容器服务。运行在哪个节点,就用节点IP+8082端口访问
步骤六、到对应的运行节点可看到容器状态
[root@manager ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae7c0bb731ff nginx:latest "/docker-entrypoint.…" 43 minutes ago Up 43 minutes 80/tcp nginx_test.1.lywqrgljuhfoe89lfbgftr2u9
2、扩容副本数
- 查看nginx_test服务当前副本数
可见副本数为1
[root@manager ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
rikgegyi7ib5 nginx_test replicated 1/1 nginx:latest *:8082->80/tcp
- 扩充nginx_test服务副本数为5个
方式一:
[root@manager ~]# docker service scale nginx_test=5
nginx_test scaled to 5
overall progress: 5 out of 5 tasks
1/5: running [==============>]
2/5: running [==============>]
3/5: running [==============>]
4/5: running [==============>]
5/5: running [==============>]
verify: Service converged
方式二:
[root@manager ~]# docker service update --replicas 5 nginx_test
nginx_test
overall progress: 5 out of 5 tasks
1/5: running [==============>]
2/5: running [==============>]
3/5: running [==============>]
4/5: running [==============>]
5/5: running [==============>]
verify: Service converged
- 可见副本数已经扩充为5个
[root@manager ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
rikgegyi7ib5 nginx_test replicated 5/5 nginx:latest *:8082->80/tcp
3、缩容副本数
- 查看nginx_test服务当前副本数
可见副本数为5
[root@manager ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
rikgegyi7ib5 nginx_test replicated 5/5 nginx:latest *:8082->80/tcp
- 缩容nginx_test服务副本数为1个
方式一:
[root@manager ~]# docker service scale nginx_test=1
nginx_test scaled to 1
overall progress: 1 out of 1 tasks
1/1: No such image: nginx:latest@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f…
verify: Service converged
方式二:
[root@manager ~]# docker service update --replicas 1 nginx_test
nginx_test
overall progress: 1 out of 1 tasks
1/1: No such image: nginx:latest@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f…
verify: Service converged
- 可见副本数已经缩容为1个
[root@manager ~]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
rikgegyi7ib5 nginx_test replicated 1/1 nginx:latest *:8082->80/tcp
4、多服务编排部署
部署集群GUI管理服务(Web方式管理集群)
步骤一、创建编排文件(编排附后)
[root@manager data]# mkdir -p /data/testSwarm
[root@manager data]# cd /data/testSwarm/
[root@manager testSwarm]# vim multi-service-compose.yml
步骤二、根据编排文件创建服务
[root@manager testSwarm]# docker stack deploy -c multi-service-compose.yml multi_service
Creating network multiservicedefault
Creating service multiservicenginx
Creating service multiservicevisualizer
Creating service multiserviceportainer