如何使用docker-compose扩展服务,同时在每个实例上应用不同的cpuset
?
例如:我有4个cpu,我想要4个实例,每个实例使用1个唯一的cpu。
发布于 2020-09-10 22:28:15
您使用的是哪个版本的docker-compose?我之所以这样问,是因为只有使用docker-compose v2.x或docker-swarm才能实现您想要的功能,如下所示。
您可以在docker文档中查看更多信息here。
假设您正在使用docker-compose 2.4,您可以在您的‘docker-compose.yaml’中定义如下服务
version: '2.4'
services:
redis:
image: redis:1.0.0
restart: always
environment:
- REDIS_PASSWORD=1234
cpu_count: 1
mem_limit: 200m
其中,cpu_count
是您希望在服务中使用的cpu核心数,mem_limit
是您的服务可以消耗的内存限制。
要定义必须运行的副本数量,请执行以下操作:docker-compose up --scale redis=2
其中redis
是docker-compose中的服务名称,2
是所需的副本数量。因此,这两个容器都将使用1核CPU和200m内存进行加速。
要查看容器资源消耗情况,可以运行docker stats
来源:https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources
https://docs.docker.com/compose/compose-file/compose-file-v2/#cpu-and-other-resources
https://stackoverflow.com/questions/63830976
复制相似问题