好吧,我又回来了。。。断了那么久主要是因为懒。。。现在有空会更新一些docker相关的知识。

本文主要是总结下在工作中需要管理Docker Swarm中的Node遇到的问题:如何删除一个Swarm中的Node。

    如何删除Docker Swarm中的Node
        Docker node rm
        Docker node demote
        Docker swarm leave

先给出答案:
step1: 如果是master, docker node demote {node-id}
step2: docker node rm -f {node-id}

Docker的Cli给出了三个和删除Node有关的命令:
docker node rm
docker node demote
docker swarm leave

这三个命令分别代表着什么?
Docker node rm

本质是调用SwarmKit(Swarmkit在Docker1.12后会打包在docker的发行版里,会启动一个swarmkit的daemon进程监听主机上的2377端口)的RemoveNode接口,swarmkit会在其raft store删除这个Node的数据
Docker node demote

本质是调用SwarmKit的UpdateNode接口,把role从master改成worker
Docker swarm leave

    判断还剩下的master数量是否是安全的,如果不是会报错
    把当前的swarm node停止
    把当前node上所有的swarm mode启动的container停止
    清除掉swarm保存在机器上的log文件
    把daemon设置成非swarm mode,并把attachment上的network删掉

从实现原理来看,swarm leave== node demote + node rm
但是从测试结果发现,swarm leave后这个node就变成unreachable的状态了。。。并不会从node列表中消失,因此,正确的删除姿势就是node demote -> node rm,虽然docker有的文档中提到了swarm leave,
————————————————
版权声明:本文为CSDN博主「MrTitan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MrTitan/article/details/56492313

如何删除Docker Swarm中的Node的更多相关文章

  1. Docker Swarm 中最重要的概念- 每天5分钟玩转 Docker 容器技术(94)

    从主机的层面来看,Docker Swarm 管理的是 Docker Host 集群.所以先来讨论一个重要的概念 - 集群化(Clustering). 服务器集群由一组网络上相互连接的服务器组成,它们一 ...

  2. 定时脚本删除docker容器中内容

    今天在我同步mongo数据库的时候,服务器的磁盘突然就被占满了导致同步中断,mongo容器也停止工作了.然后就想要弄一个能够定时清理同步过程中留存在docker容器中的mongo数据的脚本.话不多说, ...

  3. docker环境中安装node、pm2,映射项目文件守护程序

    1.docker安装完成后,获取对应版本,可自定义node版本,默认为最新版本. git pull node:<version> 2.编写Dockerfile,在文件中添加安装pm2命令. ...

  4. centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本

    1.宿主机中创建目录 mkdir -p /jenkins_home 2.编辑compose文件,文件名jenkins.yml version: '3.4' services: jenkins-upgr ...

  5. 如何删除docker镜像中已配置的volume

    场景: 有个同学不知道因为啥,将容器内部的 /sys/fs/cgroup 挂载到了外面的某个目录: 但是这个目录是很有用的,不想随便被挂载,如何从image中去掉呢? docker没有给出一个方便的方 ...

  6. Docker(二十二)-Docker Swarm常用命令

    #查看集群节点 docker node ls #创建nginx服务 #docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像 docker ser ...

  7. 20、docker swarm

      Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Kuber ...

  8. 【09】循序渐进学 docker:docker swarm

    写在前面的话 至此,docker 的基础知识已经了解的差不多了,接下来就来谈谈对于 docker 容器,我们如何来管理它. docker swarm 在学习 docker swarm 之前,得先知道容 ...

  9. Docker Swarm常用命令

    #查看集群节点 docker node ls #创建nginx服务 #docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像 docker ser ...

  10. docker--搭建docker swarm集群

    10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天 ...

随机推荐

  1. Ubuntu 20.04编译opencv-3.1.0时报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope

    Ubuntu 20.04源码编译安装opencv320 报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope的解决办法 ...

  2. [转]火狐浏览器访问github提示:未连接:有潜在的安全问题...github.com 启用了被称为 HTTP 严格传输安全(HSTS)的安全策略,Firefox 只能与其建立安全连接。

    火狐浏览器访问github,提示:        未连接:有潜在的安全问题:        Firefox 检测到潜在的安全威胁,并因 github.com 要求安全连接而没有继续.如果这种情况是因为 ...

  3. spark (三) hadoop上传文件并运行spark

    目录 1. 上传文件到hdfs 2. 运行wordCount 2.1 spark-shell运行 2.2 spark-submit运行example(stand-alone) 2.3 spark-su ...

  4. Mybatis-Plus 多租户模式忽略某个方法

    Mapper 类方法添加注解: @InterceptorIgnore(tenantLine = "true") 亲测有效.

  5. runoob-android

    https://www.runoob.com/android/android-tutorial.html https://www.runoob.com/w3cnote/android-tutorial ...

  6. Mac配置apache cgi服务

    CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口 Mac上是自带CGI运行程序的,但是直接是不可 ...

  7. 学Shiro完结版-3

    第八章 拦截器机制--<跟我学Shiro> 8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3 ...

  8. Go语言【Gin框架】:JSON、AsciiJSON、PureJSON和SecureJSON的区别

    在Go语言中,JSON.AsciiJSON.PureJSON 和 SecureJSON 是Gin框架用于发送JSON响应的方法. 1. c.JSON 功能:将提供的数据序列化为标准的JSON格式,并将 ...

  9. 一. 初始 Redis(快速入门-00)

    一. 初始 Redis(快速入门-00) @ 目录 一. 初始 Redis(快速入门-00) Redis 概述: 关系型数据库(如 MySQL ) 问题 NoSQL 数据库(非关系性数据库) 最后: ...

  10. 浅谈基于SASE的安全云服务

    本文分享自天翼云开发者社区<浅谈基于SASE的安全云服务>,作者:姚****亮 SASE(secure access service edge安全访问服务边缘):是一种安全框架,结合了软件 ...