docker service scale
| 描述 | 扩缩一个或多个复制服务 |
|---|---|
| 用法 | docker service scale SERVICE=REPLICAS [SERVICE=REPLICAS...] |
Swarm 此命令适用于 Swarm 编排器。
描述
scale 命令允许您将一个或多个复制服务向上或向下扩缩到所需的副本数量。此命令不能应用于全局模式的服务。该命令将立即返回,但服务的实际扩缩可能需要一些时间。要在保持服务在 swarm 中活跃的情况下停止服务的所有副本,您可以将扩缩设置为 0。
注意这是一个集群管理命令,必须在 Swarm 管理器节点上执行。要了解管理器和工作器,请参阅文档中的Swarm 模式部分。
选项
| 选项 | 默认值 | 描述 |
|---|---|---|
-d, --detach | API 1.29+ 立即退出,而不等待服务收敛 |
示例
扩缩单个服务
以下命令将“frontend”服务扩缩到 50 个任务。
$ docker service scale frontend=50
frontend scaled to 50
以下命令尝试将全局服务扩缩到 10 个任务并返回错误。
$ docker service create --mode global --name backend backend:latest
b4g08uwuairexjub6ome6usqh
$ docker service scale backend=10
backend: scale can only be used with replicated or replicated-job mode
紧接着,运行 `docker service ls`,查看实际的副本数量。
$ docker service ls --filter name=frontend
ID NAME MODE REPLICAS IMAGE
3pr5mlvu3fh9 frontend replicated 15/50 nginx:alpine
您还可以使用 `docker service update` 命令扩缩服务。以下命令是等效的
$ docker service scale frontend=50
$ docker service update --replicas=50 frontend
扩缩多个服务
`docker service scale` 命令允许您一次性设置多个服务所需的任务数量。以下示例同时扩缩后端和前端服务
$ docker service scale backend=3 frontend=5
backend scaled to 3
frontend scaled to 5
$ docker service ls
ID NAME MODE REPLICAS IMAGE
3pr5mlvu3fh9 frontend replicated 5/5 nginx:alpine
74nzcxxjv6fq backend replicated 3/3 redis:7.4.1