Docker 限制容器对内存的使用详解
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Do
千家信息网最后更新 2025年12月03日Docker 限制容器对内存的使用详解
一个 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)内,所以工作线程能够正常工作,其过程是:
- 分配 280M 内存。
- 释放 280M 内存。
- 再分配 280M 内存。
- 再释放 280M 内存。
- 一直循环......
如果让工作线程分配的内存超过 300M,结果如下:
分配的内存超过限额,stress 线程报错,容器退出。
如果在启动容器时只指定-m而不指定--memory-swap,那么--memory-swap默认为-m的两倍,比如:
docker run -it -m 200M ubuntu
容器最多使用 200M 物理内存和 200M swap。
内存限额就讨论到这里,希望对大家的学习有所帮助,也希望大家多多支持。
内存
容器
分配
线程
工作
资源
参数
命令
物理
结果
镜像
学习
控制
运行
限制
操作系统
使用量
压力
含义
性能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
收到软件开发费进什么科目
高职网络安全比赛
暗黑2重制不同服务器房间
单片机软件开发思维导图
网络安全我国实行什么制度
济南浪潮招软件开发
网络安全四个坚持落实
新冠与网络安全
海致网聚网络技术公司 上海
60年代数据库
设置管家婆与数据库连接
网络安全法 重要意义
挖财网络技术有限公司倒闭
整个数据库搜数据库
进口服务器网络机柜厂家
服务器管理器功能出错
world数据库
占用数据库连接池情况
飞牛互联网科技有限公司
中级 网络安全法
科技互联网技术的发展
服务器以太网口无法识别
承德软件开发培训哪个好
5j是不是第5代通信网络技术
福建高校党建软件开发哪儿好
mfc判断数据库是否连接
805数据库pdf
即时通讯软件开发公司排名
天津合众互联网科技有限公司
软件开发常用什么软件