docker swarm的使用

初始化swarm

172.16.185.100为当前主机ip

docker swarm init  --advertise-addr=172.16.185.100

创建节点并加入

当初始化后,会打印出下方的语句,直接使用下方语句到需要创建节点的主机执行即可

docker swarm join --token SWMTKN-1-026x4zlu8arskm1es48g14w6awjwc09tgl1ko2vkpi6vopse4b-48t53de9f3hukw1l4o5ttr2x5 172.16.185.100:2377

查看节点信息

在初始化主机上执行下方指令可以查看当前节点信息

docker node ls


ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
0m9s001t3puq2uueoke90jhbd *   docker100           Ready               Active              Leader              19.03.5
0dtzzo5p4w6vb5ywhbgezh408     docker101           Ready               Active                                  19.03.5
57u9uu83yy00wxiqgnrw79rsi     docker102           Ready               Active                                  19.03.5

集群高可用

如果docker100节点出问题了,这个集群就没法用了,这时候我们可以把docker101及docker102也升级为manager节点,此时,如果docker100挂掉后,会从docker101和docker102中选举出一个节点变成新的Leader

docker node promote docker101
docker node promote docker102

创建网络

创建一个名叫demo的overlay网络,用于不同节点间容器的通信

[root@docker100 ~]# docker network create -d overlay demo


[root@docker100 ~]# docker network ls


NETWORK ID          NAME                       DRIVER              SCOPE
93a0126a6b4f        bridge                     bridge              local
nz6t68gh28eo        demo                       overlay             swarm
da2008ab5921        docker-compose_my-bridge   bridge              local
7a7052c65c43        docker_gwbridge            bridge              local
e3a3355edaaa        host                       host                local
d3n309moc23j        ingress                    overlay             swarm
6adee247bc35        none                       null                local

创建服务

--replicas:创建多少个容器 ,2为创建2个

--name:指定容器名称

--network:指定网络

docker service create --replicas 2 --name service_test --network demo nginx:alpine

查看服务

 ls:查看当前有哪些服务

ps:指定查看service 部署情况

root@docker100 ~]# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
xr9j9c4t2hz9        service_test        replicated          2/2                 nginx:alpine        


[root@docker100 ~]# docker service ps service_test
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
xm0omnuj9fho        service_test.1      nginx:alpine        docker100           Running             Running 2 minutes ago                       
m1x00d9aqjpz        service_test.2      nginx:alpine        docker101           Running             Running 2 minutes ago                       

水平扩展

当感觉service不够用时,可以水平扩展

service_test=3,扩展service名称为servcie_test的数量为3个

docker service scale service_test=3


[root@docker100 ~]# docker service ps service_test
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
xm0omnuj9fho        service_test.1      nginx:alpine        docker100           Running             Running 6 minutes ago                        
m1x00d9aqjpz        service_test.2      nginx:alpine        docker101           Running             Running 6 minutes ago                        
wv73nnrf5iog        service_test.3      nginx:alpine        docker102           Running             Running 21 seconds ag

服务发现与自动恢复

手动删除或关闭运行中的容器,过几秒之后就能发现 Swarm 会自动创建新的容器来顶替失效的容器。

 

 

 

常用命令


  • docker swarm 命令用于管理 Swarm 群集
命令描述
docker swarm init初始化一个 swarm 群集
docker swarm join加入群集作为节点或管理器
docker swarm join-token管理用于加入群集的令牌
docker swarm leave离开 swarm 群集
docker swarm unlock解锁 swarm 群集
docker swarm unlock-key管理解锁钥匙
docker swarm update更新 swarm 群集
  • docker node 命令用于管理 Swarm 群集中的机器节点
命令描述
docker node demoteswarm 群集管理器中降级一个或多个节点
docker node inspect显示一个或多个节点的详细信息
docker node ls列出 swarm 群集中的节点
docker node promote将一个或多个节点推入到群集管理器中
docker node ps列出在一个或多个节点上运行的任务,默认为当前节点
docker node rmswarm 群集删除一个或多个节点
docker node update更新一个节点
  • docker service 命令用于管理 Swarm 群集中的服务
命令描述
docker service create创建服务
docker service inspect显示一个或多个服务的详细信息
docker service logs获取服务的日志
docker service ls列出服务
docker service rm删除一个或多个服务
docker service scale设置服务的实例数量
docker service update更新服务
docker service rollback恢复服务至 update 之前的配置

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值