Docker 限制容器对内存的使用详解

发布时间 - 2026-01-11 02:38:37    点击率:

一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能。

内存限额

与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两组参数来控制容器内存的使用量。

1、 -m--memory:设置内存的使用限额,例如 100M, 2G。

2、 --memory-swap:设置内存+swap的使用限额。

当我们执行如下命令:

docker run -m 200M --memory-swap=300M ubuntu

其含义是允许该容器最多使用 200M 的内存和 100M 的 swap。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的使用没有限制。

下面我们将使用 progrium/stress 镜像来学习如何为容器分配内存。该镜像可用于对容器执行压力测试。执行如下命令:

docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M

--vm 1:启动 1 个内存工作线程。

--vm-bytes 280M:每个线程分配 280M 内存。

运行结果如下:

因为 280M 在可分配的范围(300M)内,所以工作线程能够正常工作,其过程是:

  1. 分配 280M 内存。
  2. 释放 280M 内存。
  3. 再分配 280M 内存。
  4. 再释放 280M 内存。
  5. 一直循环......

如果让工作线程分配的内存超过 300M,结果如下:

分配的内存超过限额,stress 线程报错,容器退出。

如果在启动容器时只指定-m而不指定--memory-swap,那么--memory-swap默认为-m的两倍,比如:

docker run -it -m 200M ubuntu

容器最多使用 200M 物理内存和 200M swap。

内存限额就讨论到这里,希望对大家的学习有所帮助,也希望大家多多支持。


# docker限制容器内存  # docker  # 容器内存  # 限制  # docker 内存监控与压测方式  # docker 查看进程  # 内存  # cup消耗的情况  # docker启动elasticsearch时内存不足问题及解决方法  # Docker如何限制容器可用的内存  # Docker容器内存限制的方法  # Docker 容器内存监控原理及应用  # docker 查看jvm内存占用方式  # 最多  # 镜像  # 两组  # 太多  # 而不  # 当我们  # 报错  # 用户可以  # 两倍  # 两部分  # 何为  # 上会  # 大家多多  # 即对  # 使用量  # 默认为  # 情况下  # 操作系统  # 压力测试  # 可用于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 常州企业网站制作公司,全国继续教育网怎么登录?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  linux top下的 minerd 木马清除方法  Laravel如何使用Eloquent进行子查询  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel如何处理异常和错误?(Handler示例)  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  JavaScript Ajax实现异步通信  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  黑客如何通过漏洞一步步攻陷网站服务器?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  LinuxCD持续部署教程_自动发布与回滚机制  Laravel如何实现数据库事务?(DB Facade示例)  如何挑选优质建站一级代理提升网站排名?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  三星网站视频制作教程下载,三星w23网页如何全屏?  ,南京靠谱的征婚网站?  免费视频制作网站,更新又快又好的免费电影网站?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  JS去除重复并统计数量的实现方法  微信公众帐号开发教程之图文消息全攻略  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  网站建设整体流程解析,建站其实很容易!  如何在万网自助建站中设置域名及备案?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何用低价快速搭建高质量网站?  中山网站推广排名,中山信息港登录入口?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  海南网站制作公司有哪些,海口网是哪家的?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Python函数文档自动校验_规范解析【教程】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在自有机房高效搭建专业网站?  如何在腾讯云服务器快速搭建个人网站?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  JS实现鼠标移上去显示图片或微信二维码  js实现点击每个li节点,都弹出其文本值及修改  Laravel如何处理表单验证?(Requests代码示例)  北京企业网站设计制作公司,北京铁路集团官方网站?  Android GridView 滑动条设置一直显示状态(推荐)  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法