当前版本的Docker包括swarm模式,用于本地管理称为swarm的Docker引擎集群。使用Docker CLI创建集群,将应用程序服务部署到集群以及管理集群行为。
Docker Swarm模式内置在Docker Engine中。不要将Docker Swarm模式与 不再积极开发的Docker Classic Swarm混淆。
功能亮点
与Docker Engine集成的集群管理:使用Docker Engine CLI创建大量Docker Engine,您可以在其中部署应用程序服务。您不需要其他编排软件即可创建或管理群体。
分散式设计: Docker Engine无需在部署时处理节点角色之间的差异,而在运行时处理任何专业化问题。您可以使用Docker Engine部署两种类型的节点,包括管理者和工作者。这意味着您可以从单个磁盘映像构建整个群集。
声明性服务模型: Docker Engine使用声明性方法来让您定义应用程序堆栈中各种服务的所需状态。例如,您可能描述了一个包含Web前端服务和消息队列服务以及数据库后端的应用程序。
缩放比例:对于每个服务,您可以声明要运行的任务数。当您放大或缩小时,群管理器会通过添加或删除任务来自动调整以维持所需的状态。
所需状态协调:群集管理器节点不断监视集群状态,并协调实际状态与您表示的所需状态之间的任何差异。例如,如果您将服务设置为运行一个容器的10个副本,而承载其中两个副本的工作机崩溃,则管理器将创建两个新副本来替换崩溃的副本。群管理器将新副本分配给正在运行且可用的工作程序。
多主机网络:您可以为服务指定覆盖网络。集群管理器在初始化或更新应用程序时会自动将地址分配给覆盖网络上的容器。
服务发现:群集管理器节点为群集中的每个服务分配唯一的DNS名称,并平衡正在运行的容器。您可以通过群集中嵌入的DNS服务器查询群集中运行的每个容器。
负载平衡:您可以将服务端口公开给外部负载平衡器。在内部,群集可让您指定如何在节点之间分配服务容器。
默认情况下是安全的:群集中的每个节点都执行TLS相互身份验证和加密,以保护自身与所有其他节点之间的通信安全。您可以选择使用自签名根证书或来自自定义根CA的证书。
滚动更新:在推出时,您可以将服务更新逐步应用于节点。群管理器使您可以控制将服务部署到不同节点集之间的延迟。如果有任何问题,可以回滚到该服务的先前版本。