我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker Compose中如何限制容器的CPU和内存使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker Compose中如何限制容器的CPU和内存使用

正文

最近我在使用开源统计Umami过程中,发现CPU和内存经常占满,导致其它服务都不能正常使用。Umami我使用的docker-compose进行部署,于是打算使用docker-compose限制下容器的CPU和内存使用来解决这个问题。

吐槽

于是我就去搜索相关文档寻找限制容器资源使用率的方法,给我的感觉是Docker官方在设计docker-compose的时候有点混乱。

  • 首先是docker-compose的版本分1.x2.x不同版本特性不一样
  • docker-compose.yaml里面的version又分多个版本(1.x-3.x),不同的版本特性不一样
  • 官方似乎没有明确的文档指名各版本的区别,而且升级版本的速度还贼快

docker-compose限制CPU和内存

我直接贴出Umami的完整docker-compose.yaml内容:

---
version: '3'
services:
  umami:
    image: docker.umami.dev/umami-software/umami:mysql-latest
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 500M
        reservations:
          cpus: '0.25'
          memory: 200M
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: mysql://umami:xxx@127.0.0.1:3306/umami
      DATABASE_TYPE: mysql
      HASH_SALT: replace-me-with-a-random-string
    restart: always
    network_mode: "host"

限制指令为deploy.resources.limits这部分,注意节点位置,上面这部分限制的含义是:

Umami服务的CPU使用被限制在最多50%的CPU能力,内存使用被限制在最多500MB。同时,这个服务至少需要25%的CPU和200MB的内存。

我们启动的时候命令需要发生一些变化,否则不会生效:

#原本的启动命令为
docker-compse up -d
# 需要添加一个参数--compatibility表示以兼容模式来运行
docker-compose --compatibility up -d

这里的关键在于添加--compatibility参数以兼容模式来运行,否则限制不会生效。

验证

通过上述方法限制容器CPU和内存后,再继续使用命令:docker stats查看容器资源使用情况:

可以看到umami这个容器被成功限制为500MB内存。

总结

  • docker-compose的版本设计非常混乱,且没找到明确的官方特性对比说明
  • docker-compose.yaml限制内存需要添加deploy.resources.limits节点
  • docker-compose命令启动的时候需要添加--compatibility参数以兼容模式来运行,否则限制不会生效

以上就是Docker Compose中限制容器的CPU和内存使用?的详细内容,更多关于Docker Compose限制CPU的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker Compose中如何限制容器的CPU和内存使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker Compose中如何限制容器的CPU和内存使用

这篇文章主要为大家介绍了Docker Compose中限制容器的CPU和内存使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-20

python如何限制CPU和内存使用量

这篇文章主要介绍了python如何限制CPU和内存使用量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。限制「CPU」和内存使用量如果不是想优化程序对内存或 CPU 的使用率,
2023-06-27

Docker怎么限制容器可用的内存

小编给大家分享一下Docker怎么限制容器可用的内存,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!为什么要限制容器对内存的使用?限制容器不能过多的使用主机的内存是非常重要的。对于 linux 主机来说,一旦内核检测到没有足
2023-06-07

如何在redis中限制内存的使用大小

如何在redis中限制内存的使用大小?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。记录一次生产环境问题排查过程:生产环境部署方式:nginx + uwsgi +
2023-06-15

如何在VirtualBox中限制虚拟机的内存使用

在VirtualBox中限制虚拟机的内存使用可以通过以下步骤实现:打开VirtualBox并选择要配置的虚拟机。点击“设置”按钮,然后选择“系统”选项卡。在“基本”选项卡下,找到“处理器”区域,然后将“内存大小”设置为所需的最大内存限制
如何在VirtualBox中限制虚拟机的内存使用
2024-06-11

如何在VirtualBox中限制虚拟机的CPU使用率

在VirtualBox中,您可以通过设置虚拟机的CPU限制来限制其使用率。以下是如何在VirtualBox中限制虚拟机的CPU使用率的步骤:打开VirtualBox并选择要限制CPU使用率的虚拟机。单击“设置”按钮以打开虚拟机的设置窗口。在
如何在VirtualBox中限制虚拟机的CPU使用率
2024-06-10

如何限制你的Python程序所能使用的内存

这篇文章主要讲解了“如何限制你的Python程序所能使用的内存”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何限制你的Python程序所能使用的内存”吧!如果程序开发不当,可能会出现占用过
2023-06-15

如何限制你的Python程序所能使用的最大内存

这篇文章主要讲解了“如何限制你的Python程序所能使用的最大内存”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何限制你的Python程序所能使用的最大内存”吧!为了限制Python程序所
2023-06-15

如何实现统计cpu内存和使用率的shell脚本代码

这篇文章主要介绍了如何实现统计cpu内存和使用率的shell脚本代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:#!/bin/shclearwhile ((1>0
2023-06-09

web前端中V8的垃圾回收和内存限制如何理解

这篇文章将为大家详细讲解有关web前端中V8的垃圾回收和内存限制如何理解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言在第三次浏览器大战中,来自Google的Chrome浏览器凭借优异的
2023-06-04

如何使用 Docker 容器中的私有存储库进行身份验证

php小编草莓为您介绍如何使用 Docker 容器中的私有存储库进行身份验证。Docker 是一种流行的容器化平台,能够帮助开发人员在不同的环境中快速部署和运行应用程序。然而,对于一些敏感的应用程序或者私有的代码库,我们可能需要对容器中的存
如何使用 Docker 容器中的私有存储库进行身份验证
2024-02-09

Linux推送服务的消息推送如何优化内存和CPU资源使用

以下是一些优化Linux推送服务的消息推送,以减少内存和CPU资源的使用:使用轻量级的推送服务:选择使用轻量级的消息推送服务,例如Mosquitto或RabbitMQ,而不是较重的服务,如Kafka或ActiveMQ。优化配置参数:调整推送
Linux推送服务的消息推送如何优化内存和CPU资源使用
2024-08-22

如何使用Linux中监控CPU与虚拟内存运行信息的命令

本篇内容介绍了“如何使用Linux中监控CPU与虚拟内存运行信息的命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mpstatmpstat
2023-06-12

如何使用CentOS系统中的访问控制列表(ACL)来限制文件和目录的访问权限

使用CentOS系统中的访问控制列表(ACL)来限制文件和目录的访问权限,可以按照以下步骤进行操作:1. 检查文件系统是否支持ACL:可以使用以下命令检查文件系统是否启用了ACL功能:```tune2fs -l /dev/sda1 | gr
2023-10-10

编程热搜

目录