要在 Docker Engine 处于 swarm 模式时部署应用程序映像,您需要创建一个服务。通常,服务是某个较大应用程序上下文中微服务的映像。服务的示例可能包括 HTTP 服务器、数据库或您希望在分布式环境中运行的任何其他类型的可执行程序。
创建服务时,您需要指定要使用的容器映像以及要在运行的容器内执行的命令。您还可以为服务定义选项,包括:
1.集群在集群外部提供服务的端口
2.服务连接到群中其他服务的覆盖网络
3.CPU 和内存限制和预留
4.滚动更新策略
5.要在 swarm 中运行的图像副本的数量
服务、任务和容器
当您将服务部署到 swarm 时,swarm 管理器接受您的服务定义作为服务所需的状态。然后它将集群中节点上的服务作为一个或多个副本任务进行调度。任务在群中的节点上彼此独立运行。
例如,假设您要在 HTTP 侦听器的三个实例之间进行负载平衡。下图显示了具有三个副本的 HTTP 侦听器服务。监听器的三个实例中的每一个都是 swarm 中的一个任务。
容器是一个孤立的进程。在群模式模型中,每个任务只调用一个容器。任务类似于调度程序放置容器的“槽”。一旦容器处于活动状态,调度程序就会识别出任务处于运行状态。如果容器未通过健康检查或终止,则任务终止。