Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
支持的工具包括但不限于以下各项:
Dokku
Docker Compose
Docker Machine
Jenkins
原理
如下图所示,swarm 集群由管理节点(manager)和工作节点(work node)构成。
swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。
![](https://img.haomeiwen.com/i6728448/33f47b49b73b3ca6.png)
创建 swarm 集群管理节点(manager)
docker-machine ssh swarm-manager
$ docker swarm init --advertise-addr 192.168.99.107 #这里的 IP 为创建机器时分配的 ip。
![](https://img.haomeiwen.com/i6728448/b532927b722c7354.png)
加入集群命令:
docker swarm join --token SWMTKN-1-4jqxizgeymxv1ovxbx1s5gek770dl84ekjs0o8uua0duo00uk6-ezs4lp8j4idrh08ya6xu00vig 192.168.99.105:2377
创建 swarm 集群工作节点(worker)
swarm-worker1 和 swarm-worker2 。
docker-machine create -d virtualbox swarm-worker2
worker1加入集群
docker swarm join --token SWMTKN-1-4jqxizgeymxv1ovxbx1s5gek770dl84ekjs0o8uua0duo00uk6-ezs4lp8j4idrh08ya6xu00vig 192.168.99.105:2377
worker2加入集群
docker swarm join --token SWMTKN-1-4jqxizgeymxv1ovxbx1s5gek770dl84ekjs0o8uua0duo00uk6-ezs4lp8j4idrh08ya6xu00vig 192.168.99.105:2377
![](https://img.haomeiwen.com/i6728448/2f2cfb5bf71d1811.png)
查看集群信息
进入管理节点,执行:docker info 可以查看当前集群的信息。
$ docker info
![](https://img.haomeiwen.com/i6728448/a3b7bd9a8a997125.png)
部署服务到集群中
注意:跟集群管理有关的任何操作,都是在管理节点上操作的。
以下例子,在一个工作节点上创建一个名为 helloworld 的服务,这里是随机指派给一个工作节点:
docker service create --name nginx -p 80:80 hub-mirror.c.163.com/library/nginx
网友评论