Docker Swarm模式下如何删除Jenkins离线节点?解决容器自动重建问题
解决Docker Swarm模式下Jenkins的两个常见问题
1. 如何删除Jenkins中的离线代理/节点?
处理这个问题得两步走:先清掉Jenkins内部的节点记录,再处理Docker Swarm端的服务残留,避免后续自动再生。
第一步:在Jenkins后台删除离线节点
- 登录Jenkins控制台,进入「Manage Jenkins」→「Manage Nodes and Clouds」
- 在节点列表里找到那个离线的代理,点右侧的「Delete」按钮
- 确认删除弹窗,Jenkins这边就会移除这个离线节点的所有记录
第二步:清理Docker Swarm端的对应服务
- 登录Swarm集群的管理节点,先列出所有服务找到Jenkins代理的服务名:
docker service ls - 如果这个代理服务彻底不需要了,直接删除:
docker service rm <你的jenkins代理服务名> - 如果只是暂时停用,不想删服务,把副本数设为0就行:
docker service scale <你的jenkins代理服务名>=0
- 登录Swarm集群的管理节点,先列出所有服务找到Jenkins代理的服务名:
2. 删除离线容器后Swarm持续自动生成新容器?
这大概率是Swarm服务设置了固定副本数,或者Jenkins的Swarm云配置开了自动扩容,导致Swarm一直在维持指定数量的容器。解决方法如下:
先调整Swarm服务的副本配置
- 用
docker service ls找到代理服务名,再查看服务详情:docker service inspect <你的jenkins代理服务名> - 看输出里的
Spec.Replicas字段,如果数值大于0,Swarm就会自动补容器到这个数。按需调整:- 不需要就设为0:
docker service scale <你的jenkins代理服务名>=0 - 要固定数量就设成你需要的数字,比如
docker service scale <你的jenkins代理服务名>=2
- 不需要就设为0:
- 用
检查Jenkins的Swarm云自动扩容设置
- 进入Jenkins后台「Manage Jenkins」→「Manage Nodes and Clouds」→「Configure Clouds」
- 找到你配置的Docker Swarm云,查看「Agent templates」:
- 有没有开「Scale agents automatically」这类自动扩容选项?有的话要么关掉,要么调整最大代理数、扩容阈值
- 要是不再用这个代理模板,直接删掉,避免Jenkins自动给Swarm发创建容器的指令
彻底清理(按需)
如果确认不再用这个代理服务,直接删Swarm服务,同时在Jenkins里删掉对应的云代理模板,从根源上阻止自动生成容器。
内容的提问来源于stack exchange,提问作者envalentine
相关产品推荐
相关产品推荐

