docker修改容器内存大小


扯淡:最近在学习公司开发的平台业务,需要将应用部署一遍。我自己电脑内存为16g,开了一台8g内存的centos虚拟机。大部分服务都是部署在docker容器内的,在docker容器部署pulsar的时候竟然发现启动命令没有内存限制,百度了一圈也没找到可以在哪里添加内存限制。只好硬着头皮启动服务,结果电脑那叫一个卡呀,8g的内存占的满满当当的。使用top查看内存占用,发现pulsar服务占用了两三个g的内存,而且别的应用因为内存不够停掉之后,pulsar还会把剩余的内存给占用掉,这nm不是无底洞吗。于是我想了各种办法限制pulsar服务的内存占用。
在这里插入图片描述

1.docker内存限制的两种方式

docker内存限制有两种方式:

  1. 创建容器时添加-m参数,单位可以是b,k,m,g
  2. 如果已经存在容器,修改该容器的hostconfig.json文件

2.方式一:-m参数限制

创建容器时我们可以添加-m参数限制容器的内存占用。单位是b,k,m,b
例如:

docker run -dit --name test -m 400m -p 3306:3306 mysql
#创建mysql的镜像实例,并限制容器占用内存大小为400m

3.方式二:修改hostconfig.json文件限制

hostconfig.hson文件是容器的配置文件,每一个容器都有一个对应的 hostconfig.json配置文件,我们在创建容器时使用的任何参数,都可以在这里配置,功能十分的强劲。
在这里插入图片描述

1.查找容器对应的hostconfig.json文件
docker ps  #找到要修改的容器id,记住它,后面要根据这个id找文件夹
find / -name hostconfig.json #全局搜索hostconfig.json文件,文件的最后一级目录就是容器id

通过上面的命令,就可以找到容器对应的hostconfig.json文件了。

2.停止docker

在修改hostconfig.json文件前,必须要停止docker,否则修改无效

systemctl stop docker
3.修改hostconfig.json文件

通过vi命令修改配置文件,
在这里插入图片描述

找到Memory这一项,修改内存大小。请注意:这里的单位默认为byte。最小内存限制为4m,也就是,4x1024x1024。我这里修改为700mb,也就是700x1024x1024。
修改完成之后保存退出。

4.启动docker
systemctl start docker
5.大功告成,完结撒花

在这里插入图片描述

  • 19
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值