动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Docker集群详解

08-09 14:50 4149浏览
举报 T字号
  • 大字
  • 中字
  • 小字

1. 理解swarm

swarm(译:集群)

一个swarm是一组运行着Docker的机器,它们一起加入到一个集群。swarm中的机器既可以是物理机,也可以是虚拟机。在加入到一个swarm后,每台机器被称为一个节点。以前,我们执行docker命令由对应的机器去执行,而现在多台机器组成swarm后,命令由swarm manager去执行。

swarm manager 可以用多种策略来运行容器,比如“empties node”,用容器填充利用率最低的机器;或者“global”,它确保每台机器只获得指定容器的一个实例。

swarm manager 是在一个swarm中唯一能够执行你的命令的机器,或者授权其它机器以workers身份加入。Workers仅仅只是在提供生产能力,它没有权力告诉其他机器它能做什么和不能做什么。

到目前为止,你一直在本地机器上以single-host mode(单机模式)使用Docker。但是Docker也可以切换到swarm mode(群集模式),这就是启用群集的原因。启用群集模式将立即使当前机器成为swarm manager。从那时起,Docker将运行你所管理的swarm上执行的命令,而不仅仅是在当前机器上。

小结&回顾:

swarm就是集群,是Docker集群,它是一组运行着Docker的机器组成的

组成Docker集群以后,集群中的每台机器被称之为一个node,其中有一台机器是这个集群的管理者,称之为manager,其余的称之为worker

在集群中,你的命令都是由manager去执行的,这与你当前在那台机器上输入的命令无关

与集群模式相对的是单机模式,之前我们一直是以单机模式使用Docker的

类比Redis机器的话,manager就相当于master,worker相当于slave

2. 设置swarm

集群由多个节点组成,可以是物理节点,也可以是虚拟节点。

运行docker swarm init以启用群集模式,并且使当前的机器成为一个群集manager,然后在其它机器上运行docker swarm join,让它们作为worker加入到群集中。

3. 创建集群

首先,我们需要hypervisor来创建虚拟机。官方支持的是VirtualBox,因此首先要安装VirtualBox

https://www.virtualbox.org/wiki/Downloads

https://docs.docker.com/machine/drivers/

安装完以后,使用 docker-machine 命令来创建两个虚拟机

现在我们就有了两个虚拟机,分别是myvm1和myvm2,接下来可以通过 docker-machine ls 命令查看

我们可能看到这样的输出

有了虚拟机以后,接下来初始化集群并添加节点

第一台启动的机器是集群中的manager,它可以执行管理命令,并且授权其它的机器以worker身份加入到该集群中。

第二台启动的机器是worker

通过 docker-machine ssh 命令,可以远程登录到刚才我们创建的虚拟机上,就像我们在Linux系统上使用ssh远程登录一样

也就是说,通过 docker-machine ssh 我们可以与远程虚拟机通讯

还可以对虚拟机进行启动和停止操作

登录到虚拟机以后就可以像在本机上那样执行各种命令了,比如:

4. 部署应用到集群

前面我们也说过,只有集群中的manager才能执行命令,因此我们可以登录到myvm1上创建一个docker-compose.yml文件

当然最简单的是使用docker-machine scp命令从本地拷贝一个,比如:

语法格式如下:

现在,myvm1上有了docker-compose.yml文件,

于是,我们就可以在myvm1上执行 docker stack deploy -c docker-compose.yml getstartedlab 命令

应用已经部署到集群了,接下来我们可以访问任意机器,简单起见就不用浏览器访问了,直接curl

看下集群中是如何负载均衡的,默认策略是随机

查看一下stack,确实启动了5个服务实例

5. 完整演示

6. 备忘单

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看Docker入门视频教程哦!

1人推荐
共同学习,写下你的评论
0条评论
代码小兵286
程序员代码小兵286

45篇文章贡献179882字

作者相关文章更多>

推荐相关文章更多>

重启Docker容器命令

代码小兵87208-09 15:04

SpringBoot是什么框架

代码小兵99203-29 17:29

简述SpringBoot与Spring区别

杨晶珍08-02 11:09

使用Docker搭建开发环境

代码小兵98808-09 14:38

Docker集群详解

代码小兵28608-09 14:50

发评论

举报

0/150

取消