- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Docker Swarm 项目
简介
Docker Swarm 是 Docker 公司官方在 2014 年 12 月初发布的一套管理 Docker
集群的工具。它将一群 Docker 宿主机变成一个单一的,虚拟的主机。
Swarm 使用标准的 Docker API 接口作为其前端访问入口,换言之,各种形式的Docker 工具比如 Dokku,Compose,Krane,Deis,docker-py,Docker 本身等都可以很容易的与 Swarm 进行集成。
在使用 Swarm 管理 docker 集群时,会有一个 swarm manager 以及若干的swarm node,swarm manager 上运行 swarm daemon ,用户只需要跟 swarm manager 通信,然后 swarm manager 再根据 discovery service 的信息选择一个swarm node 来运行 container。
值得注意的是 swarm daemon 只是一个任务调度器(scheduler) 和路由器(router), 它本身不运行容器,它只接受 Docker client 发送过来的请求,调度合适的 swarm node 来运行 container。这意味着,即使 swarm daemon 由于某些原因挂掉了, 已经运行起来的容器也不会有任何影响。
有以下两点需要注意:
集群中的每台节点上面的 Docker 的版本都不能小于 1.4
为了让 swarm manager 能够跟每台 swarm node 进行通信,集群中的每台节点的 Docker daemon 都必须监听同一个网络接口。
安装
安装 swarm 的最简单的方式是使用 Docker 官方的 swarm 镜像
$ sudo docker pull swarm
可以使用下面的命令来查看 swarm 是否成功安装。
$ sudo docker run --rm swarm -v
输出下面的形式则表示成功安装 (具体输出根据 swarm 的版本变化) swarm version 0.2.0 (48fd993)
使用
在使用 swarm 管理集群前,需要把集群中所有的节点的 docker daemon 的监听方式更改为 :2375 。
可以有两种方式达到这个目的,第一种是在启动 docker daemon 的时候指定
sudo docker -H
sudo docker -H :2375
第二种方式是直接修改 Docker 的配置文件(Ubuntu 上是 /etc/default/docker ,其他版本的 Linux 上略有不同)
在文件的最后添加下面这句代码:
DOCKER_OPTS=
DOCKER_OPTS= -H :2375 -H unix:///var/run/docker.sock
需要注意的是,一定要在所有希望被 Swarm 管理的节点上进行的。修改之后要重启 Docker
sudo service docker restart
sudo service docker restart
Docker 集群管理需要使用服务发现 (Discovery service backend) 功能,Swarm 支持以下的几种方式:DockerHub 提供的服务发现功能,本地的文件,etcd,counsel , zookeeper 和 IP 列表,本文会详细讲解前两种方式,其他的用法都是大同小异的。
先说一下本次试验的环境,本次试验包括三台机器, IP 地址分别为4,3 和 24. 利用这三台机器组成一个 docker 集群,其中 83 这台机器同时充当 swarm manager 节点。
使用 DockerHub 提供的服务发现功能
创建集群 token
swarm create在上面三台机器中的任何一台机器上面执行 命令来获取一个集群标志。
swarm create
sudo docker run --rm swarm create这条命令执行完毕后, Swarm 会前往 DockerHub 上内置的发现服务中获取一个全球唯一的 token,用来标识要管理的集群。
sudo docker run --rm swarm create
我们在 84 这台机器上执行这条命令,输出如下:
rio@
rio@084:~$ sudo docker run --rm swarm create b7625e5a7a2dc7f8c4faacf2b510078e
可以看到我们返回的 token 是 b7625e5a7a2dc7f8c4faacf2b510078e ,每次返回的结果都是不一样的。这个 token 一定要记住,后面的操作都会用到这个 token。
加入集群
sw
文档评论(0)