Swarm工具使用
1. 准备 3 台实例机 ip 地址分别是 192.168.0.131 ~ 133
2. 在三台机器上安装 docker 和 修改 docker 启动文件 配置 vim /etc/sysconfig/docker 加入 -H tcp://0.0.0.0:2375
OPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375'
3. 三台机器启动 docker 分别 docker pull swarm
4. 创建 swarm 集群
-- 创建 swarm
docker swarm init --advertise-addr 192.168.0.131
返回: SWMTKN-1-16izmwyfwxhok9lgoq8idlefumipgq2y7iv2pjja6zf53epaya-0cqbeordfj92bj86prcajmft3
--另外俩台机器加入 集群
docker swarm join \
--token SWMTKN-1-16izmwyfwxhok9lgoq8idlefumipgq2y7iv2pjja6zf53epaya-0cqbeordfj92bj86prcajmft3 \
192.168.0.131:2377
可以用以下命令查看 swarm集群的信息:
docker node list
docker network ls ()默认一个公用网络名称 ingress
docker service ls
5. 创建服务
docker service create --replicas 2 --name mynginx_swarm -p 8000:80 --network=ingress nginx
-- 调整 replicas 数量
docker service scale hpuwfzb963yy=3 或 docker service scale mynginx_swarm =3
-- 查看服务
docker service ps mynginx_swarm 或 docker service ps hpuwfzb963yy
--删除服务,慎用
docker service rm mynginx_swarm
6.滚动更新实践
创建一个 redis服务练手
docker service create \
--replicas 3 \
--name redis \
--update-delay 10s \
redis:3.0.6
--update-delay 是一个设置, 在后续的更新过程中,每个 replica 更新间隔 10 秒
2.开始更新
docker service update --image redis:3.0.7 redis
--暂停一个节点的服务
docker node update --availability drain worker1
worker1 是节点名, 节点id
--查看服务
docker service inspect --pretty mynginx_swarm
docker service inspect mynginx_swarm
参考:
http://www.runoob.com/docker/docker-install-nginx.html
https://www.jianshu.com/p/0e231a928ee6
http://dockone.io/article/227
https://www.cnblogs.com/liuyansheng/p/8178341.html
https://blog.csdn.net/u011781521/article/details/80468985 (主要)
https://docs.docker.com/swarm/ (字典)
Swarm实战
因为现在新版本的Docker已经结合了Swarm,所以在这里主要结合的是新版本功能的Docker的演示。
1、Swarm基本命令
docker swarm init 创建Swarm,同时让swarm-manager 成为 manager node。
执行该命令后,显示添加worker node和manager node 需要执行的命令。
–advertise-addr 指定与其他node通信的地址。
docker swarm init --advertise-addr [ip]
查看swarm worker的连接令牌
docker swarm join-token worker
查看swarm manager的连接令牌
docker swarm join-token manager
加入docker swarm集群,这里的token和ip更换为具体需求下的即可。
如果忘记可以用docker swarm join-token worker查看。
docker swarm join --token SWMTKN-1-1next4gw4m7yx3j6q1f4z4ooimvp3pc1ahsnnwifu5w1h6b247-f10wphfpnyyunzphr1qp4kew1 192.168.1.245:2377
查看集群中的节点
docker node ls
将节点升级为manager
docker node promote work-node1
将节点降级为worker
docker node demote work-node1
只能删除down状态的节点,如何要删除active状态的,需要加上–force
docker node rm --force worker-manager
查看服务列表
docker service ls
查看具体服务信息,这里是web服务
docker service ps web
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器