From 7f4e4145b0813a589fd2fd54590aee63865abf47 Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Thu, 21 May 2015 20:23:53 +0800 Subject: [PATCH] Fix content formatting and typos --- _images/swarm.png | Bin 0 -> 105359 bytes swarm/filter.md | 103 ++++++++++++++++++-------------- swarm/intro.md | 16 +++-- swarm/scheduling.md | 52 +++++++++------- swarm/usage.md | 140 +++++++++++++++++++++++++------------------- 5 files changed, 181 insertions(+), 130 deletions(-) create mode 100644 _images/swarm.png diff --git a/_images/swarm.png b/_images/swarm.png new file mode 100644 index 0000000000000000000000000000000000000000..4af7b271acd29e9178dc63fd9d9dbd63df95a9d4 GIT binary patch literal 105359 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

whD>%_yul)Tp<0qAf&8E_$M~#~9 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 literal 0 HcmV?d00001 diff --git a/swarm/filter.md b/swarm/filter.md index 84536da..1b42d8c 100644 --- a/swarm/filter.md +++ b/swarm/filter.md @@ -1,83 +1,100 @@ ## Swarm 过滤器 -swarm的调度器(scheduler)在选择节点运行containers的时候支持几种过滤器 (filter):Constraint,Affinity,Port,Dependency,Health -这些选项可以在执行swarm manage命令的时候通过--filter选项来设置。 +swarm 的调度器(scheduler)在选择节点运行容器的时候支持几种过滤器 (filter):Constraint,Affinity,Port,Dependency,Health + +可以在执行 `swarm manage` 命令的时候通过 `--filter` 选项来设置。 + ###Constraint Filter constraint 是一个跟具体节点相关联的键值对,可以看做是每个节点的标签,这个标签可以在启动docker daemon的时候指定,比如 -


+```sh
 sudo docker -d --label label_name=label01
-
-也可以写在docker的配置文件里面,在ubuntu上面是/etc/default/docker +``` + +也可以写在docker的配置文件里面(在ubuntu上面是 `/etc/default/docker`)。 + 在本次试验中,给083添加标签--label label_name=083,084添加标签--label label_name=084,124添加标签--label label_name=084, + 以083为例,打开/etc/default/docker文件,修改DOCKER_OPTS: -

+```sh
 DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock  --label label_name=083"
-
-在使用docker run命令启动container的时候使用 -e constarint:key=value的形式,可以指定container运行的节点,比如我们想在84上面启动一个redis container, -

+```
+
+在使用docker run命令启动容器的时候使用 `-e constarint:key=value` 的形式,可以指定container运行的节点。
+
+比如我们想在84上面启动一个 redis 容器。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_1 -d -e constraint:label_name==084 redis
 fee1b7b9dde13d64690344c1f1a4c3f5556835be46b41b969e4090a083a6382d
-
-主要,是**两个**等号,不是一个等号,这一点会经常被忽略。 -接下来再在084这台机器上启动一个redis container -

+```
+注意,是**两个**等号,不是一个等号,这一点会经常被忽略。
+
+接下来再在084这台机器上启动一个redis 容器。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_2 -d -e constraint:label_name==084 redis         4968d617d9cd122fc2e17b3bad2f2c3b5812c0f6f51898024a96c4839fa000e1
-
-然后再在083这台机器上启动另外一个redis container -

+```
+然后再在083这台机器上启动另外一个 redis 容器。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_3 -d -e constraint:label_name==083 redis         7786300b8d2232c2335ac6161c715de23f9179d30eb5c7e9c4f920a4f1d39570
-
+``` + 现在来看下执行情况: -

+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 ps
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
 7786300b8d22        redis:latest        "/entrypoint.sh redi   15 minutes ago      Up 53 seconds       6379/tcp            083/redis_3
 4968d617d9cd        redis:latest        "/entrypoint.sh redi   16 minutes ago      Up 2 minutes        6379/tcp            084/redis_2
 fee1b7b9dde1        redis:latest        "/entrypoint.sh redi   19 minutes ago      Up 5 minutes        6379/tcp            084/redis_1
-
+``` + 可以看到,执行结果跟预期的一样。 -但是如果指定一个不存在的标签的话来运行container会报错。 -

+
+但是如果指定一个不存在的标签的话来运行容器会报错。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name redis_0 -d -e constraint:label_name==0 redis
 FATA[0000] Error response from daemon: unable to find a node that satisfies label_name==0
-
+``` ###Affinity Filter -通过使用Affinity Filter,可以让一个container紧挨着另一个container启动,也就是说让两个container在同一个节点上面启动。 -现在其中一台机器上面启动一个redis -

+通过使用 Affinity Filter,可以让一个容器紧挨着另一个容器启动,也就是说让两个容器在同一个节点上面启动。
+
+现在其中一台机器上面启动一个 redis 容器。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run -d --name redis redis
 ea13eddf667992c5d8296557d3c282dd8484bd262c81e2b5af061cdd6c82158d
 rio@085:~$ sudo docker -H 192.168.1.83:2376  ps
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                  PORTS               NAMES
 ea13eddf6679        redis:latest        /entrypoint.sh redis   24 minutes ago      Up Less than a second   6379/tcp            083/redis
-
-然后再次启动两台redis -

+```
+
+然后再次启动两个 redis 容器。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376  run -d --name redis_1 -e affinity:container==redis redis
 bac50c2e955211047a745008fd1086eaa16d7ae4f33c192f50412e8dcd0a14cd
 rio@085:~$ sudo docker -H 192.168.1.83:2376  run -d --name redis_1 -e affinity:container==redis redis
 bac50c2e955211047a745008fd1086eaa16d7ae4f33c192f50412e8dcd0a14cd
-
-现在来查看下运行结果,可以看到三个container都是在一台机器上运行 -

+```
+现在来查看下运行结果,可以看到三个容器都是在一台机器上运行
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376  ps
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                  PORTS               NAMES
 449ed25ad239        redis:latest        /entrypoint.sh redis   24 minutes ago      Up Less than a second   6379/tcp            083/redis_2
 bac50c2e9552        redis:latest        /entrypoint.sh redis   25 minutes ago      Up 10 seconds           6379/tcp            083/redis_1
 ea13eddf6679        redis:latest        /entrypoint.sh redis   28 minutes ago      Up 3 minutes            6379/tcp            083/redis
-
-通过-e affinity:image=image_name命令可以指定只有已经下载了image_name的机器才运行容器 -

+```
+通过 `-e affinity:image=image_name` 命令可以指定只有已经下载了`image_name`镜像的机器才运行容器
+```sh
 sudo docker –H 192.168.1.83:2376 run –name redis1 –d –e affinity:image==redis redis 
-
-redis1这个container只会在已经下载了redis镜像的节点上运行。 -

+```
+redis1 这个容器只会在已经下载了 redis 镜像的节点上运行。
+
+```sh
 sudo docker -H 192.168.1.83:2376 run -d --name redis -e affinity:image==~redis redis
-
-这条命令达到的效果是:在有redis镜像的节点上面启动一个名字叫做redis的容器,如果每个节点上面都没有redis容器,就按照默认的策略启动redis容器。 +``` +这条命令达到的效果是:在有 redis 镜像的节点上面启动一个名字叫做 redis 的容器,如果每个节点上面都没有 redis 容器,就按照默认的策略启动 redis 容器。 + ###Port Filter -Port也会被认为是一个唯一的资源 -

+Port 也会被认为是一个唯一的资源
+```sh
 sudo docker -H 192.168.1.83:2376 run -d -p 80:80 nginx
-
-执行完这条命令,之后任何使用80端口的容器都是启动失败。 +``` + +执行完这条命令,之后任何使用 80 端口的容器都是启动失败。 diff --git a/swarm/intro.md b/swarm/intro.md index 1847d01..5c0805c 100644 --- a/swarm/intro.md +++ b/swarm/intro.md @@ -1,10 +1,16 @@ ## 简介 -swarm是Docker公司官方在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker工具比如Dokku,Compose,Krane,Deis,docker-py,docker本身等都可以很容易的与swarm进行集成。 +Swarm 是 Docker公司官方在 2014 年 12月初发布的一套管理 Docker 集群的工具。它将一群 Docker 宿主机变成一个单一的,虚拟的主机。 + +Swarm 使用标准的 Docker API 接口作为其前端访问入口,换言之,各种形式的 Docker 工具比如 Dokku,Compose,Krane,Deis,docker-py,Docker 本身等都可以很容易的与 Swarm 进行集成。 + +![Swarm 结构图](../images/swarm.png) + +在使用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 由于某些原因挂掉了,已经运行起来的容器也不会有任何影响。 -![swarm结构图](file:///C:/Users/RIO/Desktop/12.png) -在使用swarm管理docker集群时,会有一个swarm manager以及若干的swarm node,swarm manager上运行swarm daemon,用户只需要跟swarm manager通信,然后swarm manager再根据discovery service的信息选择一个swarm node来运行container。值得注意的是swarm daemon只是一个任务调度器(scheduler)和路由器(router),它本身不运行container,它只接受docker client发送过来的请求,调度合适的swarm node来运行container。这意味着,即使swarm daemon由于某些原因挂掉了,已经运行起来的container也不会有任何影响。 有以下两点需要注意: -1. 集群中的每台节点上面的docker的版本都不能小于1.4 -2. 为了让swarm manager能够跟每台swarm node进行通信,集群中的每台节点的docker daemon都必须监听同一个网络接口 +* 集群中的每台节点上面的 Docker 的版本都不能小于1.4 +* 为了让 swarm manager 能够跟每台 swarm node 进行通信,集群中的每台节点的 Docker daemon 都必须监听同一个网络接口。 diff --git a/swarm/scheduling.md b/swarm/scheduling.md index cab0a9f..289c575 100644 --- a/swarm/scheduling.md +++ b/swarm/scheduling.md @@ -1,26 +1,33 @@ ## swarm 调度策略 -swarm支持多种调度策略来选择节点。每次在swarm启动container的时候,swarm会根据选择的调度策略来选择节点运行container。目前支持的有:spread,binpack和random.再执行swarm manage的命令起送swarm集群的时候可以通过--strategy参数来指定,默认的是spread。 -spread和binpack策略会根据每台节点的可用CPU,内存以及正在运行的containers的数量来给各个节点分级,而random策略,顾名思义,他不会做任何的计算,只是单纯的随机选择一个节点来启动container。这种策略一般只做调试用。 -使用spread策略,swarm会选择一个正在运行的container的数量最少的那个节点来运行container。这种情况会导致启动的container会尽可能的分布在不同的机器上运行,这样的好处就是如果有节点坏掉的时候不会损失太多的container。而binpack恰恰相反,这种情况下,swarm会尽可能的把所有的容器放在一台节点上面运行。这种策略会避免容器碎片化,因为他会把未使用的机器分配给更大的container,带来的好处就是swarm会使用最少的节点运行最多的container。 +swarm支持多种调度策略来选择节点。每次在swarm启动container的时候,swarm会根据选择的调度策略来选择节点运行container。目前支持的有:spread,binpack和random。 -先来演示下--strategy=spread的情况 -

+在执行`swarm manage`命令启动 swarm 集群的时候可以通过 `--strategy` 参数来指定,默认的是spread。
+
+spread和binpack策略会根据每台节点的可用CPU,内存以及正在运行的containers的数量来给各个节点分级,而random策略,顾名思义,他不会做任何的计算,只是单纯的随机选择一个节点来启动container。这种策略一般只做调试用。
+
+使用spread策略,swarm会选择一个正在运行的container的数量最少的那个节点来运行container。这种情况会导致启动的container会尽可能的分布在不同的机器上运行,这样的好处就是如果有节点坏掉的时候不会损失太多的container。
+
+binpack 则相反,这种情况下,swarm会尽可能的把所有的容器放在一台节点上面运行。这种策略会避免容器碎片化,因为他会把未使用的机器分配给更大的容器,带来的好处就是swarm会使用最少的节点运行最多的容器。
+
+### spread 策略
+先来演示下 spread 策略的情况。
+```sh
 rio@083:~$ sudo docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage --strategy=spread file:///tmp/cluster
 7609ac2e463f435c271d17887b7d1db223a5d696bf3f47f86925c781c000cb60
 ats@sclu083:~$ sudo docker ps
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
 7609ac2e463f        swarm:latest        "/swarm manage --str   6 seconds ago       Up 5 seconds        0.0.0.0:2376->2375/tcp   focused_babbage
-
-三台机器除了83运行了swarm之外,其他的都没有运行任何一个container,现在在85这台节点上面在swarm集群上启动一个container -

+```
+三台机器除了83运行了 Swarm之外,其他的都没有运行任何一个容器,现在在85这台节点上面在swarm集群上启动一个容器
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-1 -d -P redis
 2553799f1372b432e9b3311b73e327915d996b6b095a30de3c91a47ff06ce981
 rio@085:~$ sudo docker -H 192.168.1.83:2376 ps
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                  PORTS                          NAMES
 2553799f1372        redis:latest        /entrypoint.sh redis   24 minutes ago      Up Less than a second   192.168.1.84:32770->6379/tcp   084/node-1
-
+``` 启动一个 redis 容器,查看结果 -

+```sh
 
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-2 -d -P redis
 7965a17fb943dc6404e2c14fb8585967e114addca068f233fcaf60c13bcf2190
@@ -28,9 +35,9 @@ rio@085:~$ sudo docker -H 192.168.1.83:2376 ps
 CONTAINER ID        IMAGE                            COMMAND                CREATED                  STATUS              PORTS                           NAMES
 7965a17fb943        redis:latest   /entrypoint.sh redis   Less than a second ago   Up 1 seconds        192.168.1.124:49154->6379/tcp   124/node-2                  
 2553799f1372        redis:latest                     /entrypoint.sh redis   29 minutes ago           Up 4 minutes        192.168.1.84:32770->6379/tcp    084/node-1
-
-再次启动一个redis,查看结果 -

+```
+再次启动一个 redis 容器,查看结果
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-3 -d -P redis
 65e1ed758b53fbf441433a6cb47d288c51235257cf1bf92e04a63a8079e76bee
 rio@085:~$ sudo docker -H 192.168.1.83:2376 ps
@@ -38,16 +45,18 @@ CONTAINER ID        IMAGE                            COMMAND                CREA
 7965a17fb943        redis:latest                     /entrypoint.sh redis   Less than a second ago   Up 4 minutes        192.168.1.227:49154->6379/tcp   124/node-2
 65e1ed758b53        redis:latest                     /entrypoint.sh redis   25 minutes ago           Up 17 seconds       192.168.1.83:32770->6379/tcp    083/node-3
 2553799f1372        redis:latest                     /entrypoint.sh redis   33 minutes ago           Up 8 minutes        192.168.1.84:32770->6379/tcp    084/node-1
-
-可以看到三个container都是分布在不同的节点上面的。 +``` +可以看到三个容器都是分布在不同的节点上面的。 +### binpack 策略 现在来看看binpack策略下的情况。在083上面执行命令: -

+```sh
 rio@083:~$ sudo docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage --strategy=binpack  file:///tmp/cluster
 f1c9affd5a0567870a45a8eae57fec7c78f3825f3a53fd324157011aa0111ac5
-
-现在在集群中启动三个rediscontainer,查看分布情况: -

+```
+
+现在在集群中启动三个 redis 容器,查看分布情况:
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-1 -d -P redis
 18ceefa5e86f06025cf7c15919fa64a417a9d865c27d97a0ab4c7315118e348c
 rio@085:~$ sudo docker -H 192.168.1.83:2376 run --name node-2 -d -P redis
@@ -59,5 +68,6 @@ CONTAINER ID        IMAGE               COMMAND                CREATED
 2195086965a7        redis:latest        /entrypoint.sh redis   24 minutes ago      Up Less than a second   192.168.1.83:32773->6379/tcp   083/node-3
 7e778bde1a99        redis:latest        /entrypoint.sh redis   24 minutes ago      Up Less than a second   192.168.1.83:32772->6379/tcp   083/node-2
 18ceefa5e86f        redis:latest        /entrypoint.sh redis   25 minutes ago      Up 22 seconds           192.168.1.83:32771->6379/tcp   083/node-1
-
-可以看到,所有的container都是分布在同一个节点上运行的。 \ No newline at end of file +``` + +可以看到,所有的容器都是分布在同一个节点上运行的。 \ No newline at end of file diff --git a/swarm/usage.md b/swarm/usage.md index 5a0c173..74c7689 100644 --- a/swarm/usage.md +++ b/swarm/usage.md @@ -1,81 +1,99 @@ ## 使用 -在使用swarm管理集群前,需要把集群中所有的节点的docker daemon的监听方式更改为0.0.0.0:2375,可以有两种方式达到这个目的,第一种是在启动docker daemon的时候指定 -> sudo docker -H 0.0.0.0:2375& +在使用 swarm 管理集群前,需要把集群中所有的节点的 docker daemon 的监听方式更改为 `0.0.0.0:2375`。 -第二种方式是直接修改docker的配置文件(以下方式是在ubuntu上面,其他版本的linux上略有不同) -> sudo vim /etc/default/docker +可以有两种方式达到这个目的,第一种是在启动docker daemon的时候指定 +```sh +sudo docker -H 0.0.0.0:2375& +``` + +第二种方式是直接修改 Docker 的配置文件(Ubuntu 上是 `/etc/default/docker`,其他版本的 Linux 上略有不同) 在文件的最后添加下面这句代码: -> DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock" +```sh +DOCKER_OPTS="-H 0.0.0.0:2375 -H unix:///var/run/docker.sock" +``` -需要注意的是,一定要在**所有的**节点上进行的。 -修改之后要重启docker -> sudo service docker restart -Docker的集群管理需要使用服务发现(Discovery service backend)功能,Swarm支持以下的几种方式:DockerHub上内置的服务发现功能,本地的文件,etcd,counsel,zookeeper和IP列表,本文会详细讲解前两种方式,其他的用法都是大同小异的。 +需要注意的是,一定要在所有希望被 Swarm 管理的节点上进行的。修改之后要重启 Docker +```sh +sudo service docker restart +``` + +Docker 集群管理需要使用服务发现(Discovery service backend)功能,Swarm支持以下的几种方式:DockerHub 提供的服务发现功能,本地的文件,etcd,counsel,zookeeper 和 IP 列表,本文会详细讲解前两种方式,其他的用法都是大同小异的。 先说一下本次试验的环境,本次试验包括三台机器,IP地址分别为192.168.1.84,192.168.1.83和192.168.1.124.利用这三台机器组成一个docker集群,其中83这台机器同时充当swarm manager节点。 -第一种方式,使用DockerHub上面内置的服务发现功能 +### 使用 DockerHub 提供的服务发现功能 -第一步:在上面三台机器中的任何一台机器上面执行swarm create命令来获取一个集群标志。这条命令执行完毕后,swarm会前往DockerHub上内置的发现服务中获取一个全球唯一的token,用来标识要管理的集群。 -> sudo docker run --rm swarm create +#### 创建集群 token + +在上面三台机器中的任何一台机器上面执行 `swarm create` 命令来获取一个集群标志。这条命令执行完毕后,Swarm 会前往 DockerHub 上内置的发现服务中获取一个全球唯一的 token,用来标识要管理的集群。 +```sh +sudo docker run --rm swarm create +``` 我们在84这台机器上执行这条命令,输出如下: -

+```sh
 rio@084:~$ sudo docker run --rm swarm create
 b7625e5a7a2dc7f8c4faacf2b510078e
-
+``` -可以看到我们返回的token是b7625e5a7a2dc7f8c4faacf2b510078e,每次返回的结果都是不一样的。这个token一定要记住,后面的操作都会用到这个token。 +可以看到我们返回的 token 是 `b7625e5a7a2dc7f8c4faacf2b510078e`,每次返回的结果都是不一样的。这个 token 一定要记住,后面的操作都会用到这个 token。 -第二步:在**所有**要加入这个集群的节点上面执行swarm join命令,表示要把这台机器加入这个集群当中。在本次试验中,就是要在83,84和124这三台机器上执行下面的这条命令: -

+#### 加入集群
+
+在所有要加入集群的节点上面执行 `swarm join` 命令,表示要把这台机器加入这个集群当中。在本次试验中,就是要在 83、84 和 124 这三台机器上执行下面的这条命令:
+```sh
 sudo docker run --rm swarm join addr=ip_address:2375 token://token_id
-
-其中的ip_address换成执行这条命令的机器的IP,token_id换成上一步执行swarm create返回的token。 +``` +其中的 ip_address 换成执行这条命令的机器的 IP,token_id 换成上一步执行 `swarm create` 返回的 token。 + 在83这台机器上面的执行结果如下: -

+```sh
 rio@083:~$ sudo docker run --rm swarm join --addr=192.168.1.83:2375 token://b7625e5a7a2dc7f8c4faacf2b510078e
 time="2015-05-19T11:48:03Z" level=info msg="Registering on the discovery service  every 25 seconds..." addr="192.168.1.83:2375" discovery="token://b7625e5a7a2dc7 f8c4faacf2b510078e"
-
-这条命令不会自动返回,要我们自己执行Ctrl+C返回。 +``` +这条命令不会自动返回,要我们自己执行 `Ctrl+C` 返回。 -第三步:启动swarm manager -因为我们要使用83这台机器充当swarm manager节点,所以需要在83这台机器上面执行swarm manage命令: -

+#### 启动swarm manager
+因为我们要使用 83 这台机器充当 swarm 管理节点,所以需要在83这台机器上面执行 `swarm manage` 命令:
+```sh
 sudo docker run -d -p 2376:2375 swarm manage token://b7625e5a7a2dc7f8c4faacf2b510078e
-
+``` 执行结果如下: -

+```sh
 rio@083:~$ sudo docker run -d -p 2376:2375 swarm manage token://b7625e5a7a2dc7f8c4faacf2b510078e
 83de3e9149b7a0ef49916d1dbe073e44e8c31c2fcbe98d962a4f85380ef25f76
-
-这条命令如果执行成功会返回已经启动的swarm的container的ID,此时整个集群已经启动起来了。 -现在通过docker ps命令来看下有没有启动成功 -

+```
+这条命令如果执行成功会返回已经启动的 Swarm 的容器的 ID,此时整个集群已经启动起来了。
+
+现在通过 `docker ps` 命令来看下有没有启动成功。
+```sh
 rio@083:~$ sudo docker ps
 CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
 83de3e9149b7        swarm:latest        "/swarm manage token   4 minutes ago       Up 4 minutes        0.0.0.0:2376->2375/tcp   stupefied_stallman
-
-可以看到,swarm已经成功启动。 -在执行swarm manage这条命令的时候,有几点需要注意的: +``` +可以看到,Swarm 已经成功启动。 +在执行 `Swarm manage` 这条命令的时候,有几点需要注意的: -1. 这条命令需要在充当swarm manager的机器上执行 -2. swarm要以daemon的形式执行 -3. 映射的端口可以使任意的除了2375以外的并且是未被占用的端口,但一定不能是2375这个端口,因为2375已经被docker本身给占用了。 +* 这条命令需要在充当 swarm 管理者的机器上执行 +* Swarm 要以 daemon 的形式执行 +* 映射的端口可以使任意的除了 2375 以外的并且是未被占用的端口,但一定不能是 2375 这个端口,因为 2375 已经被 Docker 本身给占用了。 -集群启动成功以后,现在我们可以在任何一台节点上使用swarm list命令查看集群中的节点了,本实验在124这台机器上执行swarm list命令: -

+集群启动成功以后,现在我们可以在任何一台节点上使用 `swarm list` 命令查看集群中的节点了,本实验在 124 这台机器上执行 `swarm list` 命令:
+```sh
 rio@124:~$ sudo docker run --rm swarm list token://b7625e5a7a2dc7f8c4faacf2b510078e
 192.168.1.84:2375
 192.168.1.124:2375
 192.168.1.83:2375
-
-输出结果列出的IP地址正是我们使用swarm join命令加入集群的机器的IP地址。 -现在我们可以在任何一台安装了docker的机器上面通过命令(命令中要指明swarm manager机器的IP地址)来在集群中运行container了。 -本次试验,我们在192.168.1.85这台机器上使用docker info命令来查看集群中的节点的信息。其中info可以换成其他的docker支持的命令。 -

+```
+输出结果列出的IP地址正是我们使用 `swarm join` 命令加入集群的机器的IP地址。
+
+现在我们可以在任何一台安装了 Docker 的机器上面通过命令(命令中要指明swarm manager机器的IP地址)来在集群中运行container了。
+本次试验,我们在 192.168.1.85 这台机器上使用 `docker info` 命令来查看集群中的节点的信息。
+
+其中 info 也可以换成其他的 Docker 支持的命令。
+```sh
 rio@085:~$ sudo docker -H 192.168.1.83:2376 info
 Containers: 8
 Strategy: spread
@@ -89,23 +107,23 @@ Nodes: 2
   └ Containers: 7
   └ Reserved CPUs: 0 / 2
   └ Reserved Memory: 0 B / 4.053 GiB
-
-结果输出显示这个集群中只有两个节点,IP地址分别是192.168.1.83和192.168.1.84,结果不对呀,我们明明把三台机器加入了这个集群,还有124这一台机器呢? -经过排查,发现是忘了修改124这台机器上面改docker daemon的监听方式,只要按照上面的步骤修改写docker daemon的监听方式就可以了。 +``` +结果输出显示这个集群中只有两个节点,IP地址分别是 192.168.1.83 和 192.168.1.84,结果不对呀,我们明明把三台机器加入了这个集群,还有 124 这一台机器呢? +经过排查,发现是忘了修改 124 这台机器上面改 docker daemon 的监听方式,只要按照上面的步骤修改写 docker daemon 的监听方式就可以了。 在使用这个方法的时候,使用swarm create可能会因为网络的原因会出现类似于下面的这个问题: -

+```sh
 rio@227:~$ sudo docker run --rm swarm create
 [sudo] password for rio:
 time="2015-05-19T12:59:26Z" level=fatal msg="Post https://discovery-stage.hub.docker.com/v1/clusters: dial tcp: i/o timeout"
-
+``` -第二种方法:使用文件 +### 使用文件 第二种方法相对于第一种方法要简单得多,也不会出现类似于上面的问题。 -第一步:在swarm manager节点上新建一个文件,把要加入集群的机器啊IP地址和端口号写入文件中,本次试验就是要在83这台机器上面操作: -

+第一步:在 swarm 管理节点上新建一个文件,把要加入集群的机器 IP 地址和端口号写入文件中,本次试验就是要在83这台机器上面操作:
+```sh
 rio@083:~$ echo 192.168.1.83:2375 >> cluster
 rio@083:~$ echo 192.168.1.84:2375 >> cluster
 rio@083:~$ echo 192.168.1.124:2375 >> cluster
@@ -113,25 +131,25 @@ rio@083:~$ cat cluster
 192.168.1.83:2375
 192.168.1.84:2375
 192.168.1.124:2375
-
+``` -第二步:在083这台机器上面执行swarm manage这条命令: -

+第二步:在083这台机器上面执行 `swarm manage` 这条命令:
+```sh
 rio@083:~$ sudo docker run -d -p 2376:2375 -v $(pwd)/cluster:/tmp/cluster swarm manage file:///tmp/cluster
 364af1f25b776f99927b8ae26ca8db5a6fe8ab8cc1e4629a5a68b48951f598ad
-
-使用docker ps来查看有没有启动成功: -

+```
+使用`docker ps`来查看有没有启动成功:
+```sh
 rio@083:~$ sudo docker ps
 CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS                    NAMES
 364af1f25b77        swarm:latest        "/swarm manage file:   About a minute ago   Up About a minute   0.0.0.0:2376->2375/tcp   happy_euclid
-
+``` 可以看到,此时整个集群已经启动成功。 在使用这条命令的时候需要注意的是注意:这里一定要使用-v命令,因为cluster文件是在本机上面,启动的容器默认是访问不到的,所以要通过-v命令共享。 接下来的就可以在任何一台安装了docker的机器上面通过命令使用集群,同样的,在85这台机器上执行docker info命令查看集群的节点信息: -

+```sh
 rio@s085:~$ sudo docker -H 192.168.1.83:2376 info
 Containers: 9
 Strategy: spread
@@ -149,4 +167,4 @@ Nodes: 3
   └ Containers: 7
   └ Reserved CPUs: 0 / 2
   └ Reserved Memory: 0 B / 4.053 GiB
-
+```