docker限制容器内存的方法

在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。

因此,本文将介绍使用 docker 进行容器内存限制的方法。

容器内存限制

使用 docker 进行容器内存限制有两种方法,一种是在启动时对容器内存进行限制;另一种是容器启动后对容器内存进行限制。

(1)启动时进行限制

在启动时,通过命令

bash 复制代码
docker run ... -m 40G ...

中的 -m 40G 部分限制开启容器的可调用内存。此处限制容器可调用内存上限为 40 G。

(2)启动后进行限制

已经启动一个容器后,可以使用

bash 复制代码
docker update -m 40G {container_id/container_name}

开启容器的内存限制。其中,-m 40G 部分限制了可调用内存上限为 40 G,后面 {container_id/container_name} 表示容器 ID 或者容器名。

限制情况查看

完成限制后,可以在容器内或主机内查看限制情况。

(1)在主机内查看

在主机内,只需要通过命令

bash 复制代码
docker stats {container_id/container_name}

即可查看对容器的限制情况,如下图所示。

(2) 在容器内查看

在容器内,通过命令

bash 复制代码
cat /sys/fs/cgroup/memory/memory.limit_in_bytes 

即可查看容器的内存限制,如下图所示。单位为 Byte。

相关推荐
TTATTC14 分钟前
为什么 Python 做 Agent 总在并发中崩溃?拆解 Blockcell 在 Rust 下的 Host-Cell 隔离与自愈状态机
docker·开源
AIex-YH1 小时前
发酵罐里点一盏灯:光发酵,正在重算微藻蛋白的成本账
运维·制造·策略模式
jimmyleeee1 小时前
Agent安全之一:Agent Goal Hijack(ASI01)----当智能体“正确地”执行了错误的目标
运维·网络·安全
啊哈一半醒2 小时前
Redis 三大缓存问题:缓存穿透、缓存击穿、缓存雪崩
运维·redis·1024程序员节
fb_123452 小时前
K8s存储与配置核心实战
云原生·容器·kubernetes
长不大的杨瑞杰2 小时前
OpenCode v2 CI 与自动化实战:无交互运行、权限收口与制品闭环
运维·人工智能·ci/cd·自动化·软件工程·1024程序员节
kaixin_learn_qt_ing2 小时前
Jenkins
运维·jenkins
骑着蜗牛撵大象3272 小时前
N1 小盒子撑起 AI 接口中转层:New-API 接管本地 Ollama,用 Token 分发模型能力
docker·llama·1024程序员节·api网关·飞牛nas·new-api
Ruiery2 小时前
Linux 6.6内核并发与同步(一):原子操作与内存屏障 — 内核同步的硬件底座
linux·运维·服务器·1024程序员节
我是大猴子2 小时前
py how claude work项目分析
运维·服务器·windows·1024程序员节