在将应用镜像部署到处于 Swarm 模式的 Docker 引擎时,需要创建一个服务。服务通常代表一个较大应用中的微服务镜像,例如 HTTP 服务器、数据库,或在分布式环境中需要运行的其他可执行组件。
创建服务时,需要指定要使用的镜像以及在容器内执行的命令。同时还可以为服务设置以下选项:
- 集群对外暴露端口的配置
- 服务连接到覆盖网络以与群内其他服务通信
- CPU 与内存的限制与保留
- 滚动更新策略
- 在 Swarm 中运行的镜像副本数量
服务部署有两种类型:复制的服务和全局的服务。
复制服务允许指定要运行的相同任务的数量。例如,如果要部署一个 HTTP 服务且设定为三个副本,则每个副本提供相同的内容。
全局服务在集群中的每个节点上运行一个任务,没有预设的任务总数。每当向 Swarm 添加新节点时,协调器会创建一个新的任务,并由调度器将其分配到新节点。全局服务非常适合用来运行监控代理、防病毒扫描程序,或在 Swarm 中每个节点上需要运行的其他类型容器。
下方示意图显示了三个副本的复制服务(以黄色表示)以及在每个节点上运行的全局服务(以灰色表示)。

