dockerswarm使用教程(Docker Swarm集群管理的使用及原理解析)
dockerswarm使用教程
Docker Swarm集群管理的使用及原理解析Swarm 集群管理
简介
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
支持的工具包括但不限于以下各项:
- Dokku
- Docker Compose
- Docker Machine
原理
如下图所示,swarm 集群由管理节点(manager)和工作节点(work node)构成。
- swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
- work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。
使用
以下示例,均以 Docker Machine 和 virtualbox 进行介绍,确保你的主机已安装 virtualbox。
1、创建 swarm 集群管理节点(manager)
创建 docker 机器:
$ docker-machine create -d virtualbox swarm-manager
初始化 swarm 集群,进行初始化的这台机器,就是集群的管理节点。
$ docker-machine ssh swarm-manager $ docker swarm init --advertise-addr 192.168.99.107 #这里的 IP 为创建机器时分配的 ip。
以上输出,证明已经初始化成功。需要把以下这行复制出来,在增加工作节点时会用到:
docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377
2、创建 swarm 集群工作节点(worker)
这里直接创建好俩台机器,swarm-worker1 和 swarm-worker2 。
分别进入两个机器里,指定添加至上一步中创建的集群,这里会用到上一步复制的内容。
以上数据输出说明已经添加成功。
上图中,由于上一步复制的内容比较长,会被自动截断,实际上在图运行的命令如下:
docker@swarm-worker1:~$ docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377
3、查看集群信息
进入管理节点,执行:docker info 可以查看当前集群的信息。
$ docker info
4、部署服务到集群中
注意:跟集群管理有关的任何操作,都是在管理节点上操作的。
以下例子,在一个工作节点上创建一个名为 helloworld 的服务,这里是随机指派给一个工作节点:
docker@swarm-manager:~$ docker service create --replicas 1 --name helloworld alpine ping docker.com
5、查看服务部署情况
查看 helloworld 服务运行在哪个节点上,可以看到目前是在 swarm-worker1 节点:
docker@swarm-manager:~$ docker service ps helloworld
查看 helloworld 部署的具体信息:
docker@swarm-manager:~$ docker service inspect --pretty helloworld
6、扩展集群服务
我们将上述的 helloworld 服务扩展到俩个节点。
docker@swarm-manager:~$ docker service scale helloworld=2
可以看到已经从一个节点,扩展到两个节点。
7、删除服务
docker@swarm-manager:~$ docker service rm helloworld
查看是否已删除:
8、滚动升级服务
以下实例,我们将介绍 redis 版本如何滚动升级至更高版本。
创建一个 3.0.6 版本的 redis。
docker@swarm-manager:~$ docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6
滚动升级 redis 。
docker@swarm-manager:~$ docker service update --image redis:3.0.7 redis
看图可以知道 redis 的版本已经从 3.0.6 升级到了 3.0.7,说明服务已经升级成功。
9、停止某个节点接收新的任务
查看所有的节点:
docker@swarm-manager:~$ docker node ls
可以看到目前所有的节点都是 Active, 可以接收新的任务分配。
停止节点 swarm-worker1:
注意:swarm-worker1 状态变为 Drain。不会影响到集群的服务,只是 swarm-worker1 节点不再接收新的任务,集群的负载能力有所下降。
可以通过以下命令重新激活节点:
docker@swarm-manager:~$ docker node update --availability active swarm-worker1
到此这篇关于Docker Swarm集群管理的使用及原理解析的文章就介绍到这了,更多相关Docker Swarm集群管理内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- docker-compose怎么被执行的(Docker Compose一键ELK部署的方法实现)
- docker容器如何更改tomcat端口(Docker方式启动tomcat访问首页出现404错误)
- docker容器编排入门教程(laradock环境docker-compose操作详解)
- jenkins和docker自动化(Jenkins+Docker持续集成的实现)
- docker配置阿里云镜像(Docker镜像的制作,上传,拉取和部署操作利用阿里云)
- docker 加入k8s吗(k8s和Docker关系简单说明)
- docker镜像配置教程(给Docker更换国内镜像源操作)
- docker搭建私有dns域名解析(docker内网搭建dns使用域名访问替代ip:port的操作)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- docker容器的标准使用过程(Docker容器的使用方法简单示例)
- windows下搭建docker私有仓库(使用docker compose安装harbor私有仓库的详细教程)
- docker镜像大是否会导致启动慢(docker下载镜像太慢的解决方案)
- docker数据库如何初始化(Docker启动PostgreSQL时创建多个数据库的解决方案)
- docker配置说明(Docker安装Kong API Gateway并使用的详细教程)
- idea 远程部署docker(IDEA使用Docker插件菜鸟教程)
- docker搭建elasticsearch(docker安装ElasticSearch:7.8.0集群的详细教程)
- 1天密接者猛增77人,患者轨迹透露危险信号 吉林市全面封闭管理(1天密接者猛增77人)
- 吉林舒兰 封城 15人确诊 276人隔离,出现跨省传播(吉林舒兰封城)
- 四月新番CP人气榜公布,《剃须》两度上榜,沙优不是女朋友(四月新番CP人气榜公布)
- 2019年外媒秋季新番动画角色CP排行榜,桐人和爱丽丝落榜(2019年外媒秋季新番动画角色CP排行榜)
- 新一小兰领衔 盘点动漫中的那些 远距离恋爱情侣(盘点动漫中的那些)
- 大事件 合肥四中火了(大事件合肥四中火了)
热门推荐
- laravel框架配置(Laravel框架实现多数据库连接操作详解)
- mysql数值类型图解(详解mysql持久化统计信息)
- dedecms标签解析(dedecms按栏目分类搜索功能的实现方法)
- php上传图片视频代码(详解PHP素材图片上传、下载功能)
- docker ip地址分配(docker添加网桥并设置ip地址范围操作)
- 如何在cmd里开启mysql(Windows下通过cmd进入DOS窗口访问MySQL数据库)
- 如何把阿里云盘加入到快捷操作(阿里云如何挂载数据盘?阿里云挂载数据盘一键脚本)
- 织梦自定义属性设置(织梦 DeDeCMS 添加自定义属性的方法图文教程)
- 创建数据库入门教程mysql(MySQL数据库安装教程一学就会)
- idea怎么在tomcat部署项目(IDEA 配置Tomcat服务器和发布web项目的图文教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9