微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker-compose scale与不同的cpuset

如何解决docker-compose scale与不同的cpuset

如何扩展服务,但使用docker-compose在每个实例上应用不同的cpuset

例如:我有4个cpu,我想要4个实例,每个实例使用1个唯一的cpu

解决方法

您使用的是哪个版本的docker-compose?我问是因为只有通过docker-compose v2.x或docker-swarm才能实现您想要的目标,如下所示。

enter image description here

您可以在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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。