将多台 Docker 主机作为一个集群, 并在集群级别上以标准 Docker API 的形式提供服务.
7.3.1 安装 Swarm

在两台服务器上下载 Swarm 镜像:


7.3.2 创建 Swarm 集群
集群发现后端 (discovery backend):
- 默认是 Docker Hub: 允许用户在 Docker Hub 中注册一个集群, 然后返回一个集群 ID, 之后可以使用该集群 ID 向集群添加额外的节点
- etcd
- Consul
- Zookeeper
- IP 地址的静态列表
- 在 smoker 上创建 Swarm 集群

- 在每个节点上运行 Swarm 代理


- 列出 Swarm 节点

- 启动 Swarm 管理者

- 在集群中运行 docker info 命令

7.3.3 创建容器
- 运行 Nginx 容器

- 查看运行状态

上面的容器只运行在两个节点上. Swarm 根据过滤器 (filter) 和策略 (strategy) 的结合来决定在哪个节点上运行容器.
7.3.4 过滤器
过滤器是告知 Swarm 该优先在哪个节点上运行容器的明确指令
5种过滤器:

7.3.5 策略
策略允许用户用集群节点更隐式的特性来对容器进行调度.
- 平铺 (Spread)
- 紧凑 (BinPacking)
- 随机 (Random)
