基于Compose V3的声明式服务环境搭建与管理
1. 服务健康检查与管理
在使用服务时,有时默认的健康检查可能并不适用于你的使用场景。这时,你可以使用--no-healthcheck标志来创建或更新禁用健康检查的服务。
在部署过程中,新容器可能无法启动,或者启动后运行不正常(即处于不健康状态)。那么,如何定义服务的健康状态呢?时间问题可能会模糊这些定义。例如,你应该等待实例多长时间才能判定其是否健康?部分(而非全部)服务副本可能会失败或处于不健康状态,你的服务能够容忍多少副本部署失败呢?一旦你能回答这些问题,就可以向 Docker 指定这些阈值,并调整从应用程序到编排器的健康信号。
在此期间,你可以删除hello-world服务:
docker service rm hello-world从命令行管理服务时,设置所有这些参数会很麻烦;管理多个服务时,情况会更糟。
2. 命令式与声明式工具对比
以往,我们使用 Docker 命令行单独创建、更改、删除或与容器、镜像、网络和卷进行交互,这种系统遵循命令式模式。命令式工具执行用户发出的命令,这些命令可能用于检索特定信息或描述特定更改,编程语言和命令行工具都遵循这种模式。
命令式工具的好处是,用户可以使用基本命令描述更复杂的流程和系统。但命令必须严格按顺序执行,以确保对工作状态的独占控制。如果另一个用户或进程同时更改系统状态,可能会产生难以察觉的冲突更改。
命令式系统存