ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 区别和联系 docker-compose V3之后,设置资源限额和容器数量的配置,只能写在deploy字段里, 但是docker-compose up  却不支持 deploy 配置 编辑同一份docker-compose.yml, 但是compose 和 swarm/stack的分工是这样的: >  docker-compose   用于dev   支持build/restart  但是不支持deploy,   > swarm/stack      用于 prod  支持 deply的各种设置,包括分配cpu和内存, 但是创建容器只支持从image,不支持build. ## deploy扩缩容参数 deploy是用于在docker集群环境下自动进行扩容和缩容的配置项,`docker-compose up`and`docker-compose run`两个命令会忽略此配置,只有`docker stack deploy`命令下才有用 有以下子选项 1. endpoint_mode:集群对提供服务的方式 * endpoint\_mode: vip VIP方式 * endpoint\_mode: dnsrr dns轮询方式 2. labels:元数据(标签) 3. mode:设置容器模式(默认replicated) * mode: global 全局模式,只能有一个容器 * mode: replicated 复制模式,可以指定数量 4. placement:定约束和首选项的配置 5. replicas:指定容器可运行的数量,需要(mode: replicated) 6. resources:资源约束,可约束cpu和内存,设置分配量和预留量 * limits: * cpus: '0.50' * memory: 50M * reservations: * cpus: '0.25' * memory: 20M 7. restart_policy:重启策略 * condition:重启的条件(default: any) * none 没有条件(不重启) * on-failure 故障情况下才重启 * any 任何情况下都重启 * delay: 两次重启中的时间间隔(default: 0). * max_attempts: 尝试重启的次数(默认不限制) * window: 重启之前的等待时间(默认不等待) 8. rollback_config:回滚配置 * parallelism: 一次回滚的容器数量,为0则1次回滚完 * delay: 两次回滚间隔(default 0s). * failure_action: 回滚失败后的操作,继续或暂停(default pause) * monitor: 任务更新后的持续监测时间(ns|us|ms|s|m|h) (default 0s). * max_failure_ratio: 回滚期间的容错率(default 0). * order: 任务执行顺序(default stop-first). * stop-first 旧任务在开始新任务之前停止 * start-first 新任务首先启动,正在运行的任务暂停 9. update_config:更新配置 * parallelism: 一次要更新的容器数量 * delay: 两次更新的时间间隔 * failure_action: 更新失败后的操作,继续或暂停(default pause) * monitor: 任务更新后的持续监测时间(ns|us|ms|s|m|h) (default 0s). * max_failure_ratio: 更新期间的容错率(default 0). * order: 任务执行顺序(default stop-first). * stop-first 旧任务在开始新任务之前停止 * start-first 新任务首先启动,正在运行的任务暂停 配置举例 ```sh version: "3.7" services: redis: image: redis:alpine deploy: mode: global replicas: 6 endpoint_mode: dnsrr restart_policy: condition: on-failure labels: com.example.description: "xxxx" resources: limits: cpus: '0.50' memory: 50M update_config: parallelism: 2 delay: 10s ```