docker swarm集群弹性创建服务(用docker service命令创建nginx集群)
【环境准备】
系统:Centos 8.5 x64
Docker版本:Docker 20.10.11
四台docker swarm集群节点,swarm 集群搭建方法:https://www.cnblogs.com/yyee/p/15755789.html
管理节点:192.168.1.200
管理节点:192.168.1.201
工作节点:192.168.1.202
工作节点:192.168.1.203
【基本命令】
创建服务 docker service create --replicas 1 --name 服务名 -p 8888:80 镜像:tag 扩容或缩容至3个副本 docker service update --replicas 3 服务名 docker service scale 服务名=3 查看服务列表 docker service ls 查看副本分布在哪些节点 docker service ps 服务名 查看服务明细 docker service inspect 服务名 删除服务 docker servcie rm 服务名
【创建服务】
注意:docker service命令需要在manager节点上运行。
登录到其中一个管理节点,执行命令:
docker service create --replicas 1 --name my-nginx -p 8888:80 nginx
命令解析:
docker service create #创建服务命令
--replicas 1 #开启的副本数量
--name my-nginx #服务名称
-p 8888:80 #对外端口:容器内部端口
nginx #使用的镜像
查看服务列表
docker service ls
现在my-nginx只有一个副本。
查看 my-nginx 服务在哪个节点上及状态:
docker service ps my-nginx
查看my-nginx服务的详细信息:
docker service inspect my-nginx
【扩容】
将my-nginx服务副本数量扩容至6个:
docker service update --replicas 6 my-nginx 或者 docker service scale my-nginx=6
docker service ls 命令查看:
使用docker service ps 命令查看3个副本在哪几台服务器上及状态:
docker service ps my-nginx
扩容完成后,会平均分配副本数量到4台服务器中,分别在200,201,202,203四台服务器上用docker ps命令查看本节点有几个副本。
在缩主机的浏览器中分别访问192.168.1.200:8888到xxx.203:8888的各个实例,都是能访问到的。
【缩容】
将副本数从6个缩容至3个,也是使用 docker service update --replicas 或 docker service scale 命令:
docker service update --replicas 3 my-nginx 或者 docker service scale my-nginx=3
【移除服务】
移除my-nginx服务:
docker service rm my-nginx