docker限制容器内存

这篇具有很好参考价值的文章主要介绍了docker限制容器内存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 引言

我们使用docker时,经常会遇到docker容器使用内存大于docker宿主机内存,导致宿主机奔溃,从而影响其他宿主机上容器的运行。 因此我们在使用docker容器的时候需要限制内存。

二 命令

1 启动容器时限制容器内存

docker run -m 4g --memory-swap -1  

2 限制已启动容器的内存

docker stop containerId
docker update containerId -m 4g  --memory-swap -1
docker start containerId

备注:命令详解

--memory  或  -m  限制容器的内存使用量(如10m,200m等)
--memory-swap # 限制内存和 Swap 的总和,不设置的话默认为--memory的两倍
'''
如果只指定了 --memory 则 --memory-swap 默认为 --memory 的两倍
如果 --memory-swap 和 --memory 设置了相同值,则表示不使用 Swap
如果 --memory-swap 设置为 -1 则表示不对容器使用的 Swap 进行限制
如果设置了 --memory-swap 参数,则必须设置 --memory 参数
后期 update --memory 时数值不能超过 --memory-swap 的值,否则会报错 Memory limit should be smaller than already set memoryswap limit
'''

3 查询是否配置成功

docker inspect containerId

三 遇到的错误

1 ubuntu 宿主机系统默认未开启swap限制

(1) 错误表现:

Your kernel does not support swap limit capabilities or the cgroup is not mounted

(2)解决方案

// 1 打开/etc/default/grub文件
sudo vi /etc/default/grub
// 2 加入下面配置
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
// 3 更新grub系统
sudo update-grub
// 4 重启电脑

2 命令中未设置–memory-swap

(1)错误表现

Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same time

(2)错误原因
ocker 默认没有启用memory-swap交换内存,直接设置了内存问题会出问题,也就是说宿主 swap 支持使用多少则容器即可使用多少
(3)解决方式
设置内存的同时必须设置–memory-swap

四 衍生docker命令官网

docker 命令官网
docker run
docker update文章来源地址https://www.toymoban.com/news/detail-535977.html

到了这里,关于docker限制容器内存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://blog.csdn.net/m0_67266585/article/details/126580997

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包