docker 容器占用内存_如何限制Docker容器的内存

4c688227694276e7f9467e3f4a6a6124.png

容器何时销毁

现在很多服务采用容器化运行,一个容器中运行一个服务,因为容器的创建和启动都是在秒级,所以这种容器化的部署方式被称之为轻量化部署。

1. 容器中服务进程终止

容器的创建和运行是因某个服务进程而生的,因此 当服务进程结束时,容器也会终止。

例如:创建并运行一个Java容器,容器中运行某个jar文件作为服务。当容器中的这个Java进程终止时,容器也会销毁。

服务进程的关闭结束或异常终止,一般可以通过查看服务的日志,分析得出原因。

2. 容器发生OOM Killer

OOM是操作系统为避免内存超出使用而存在的一种保护机制。

容器在运行时,默认不进行内存限制,即容器将最大限度使用系统内存。

因此,不限定容器使用内存很可能在未知的时刻发生OOM

限制容器内存

-m参数

docker run -d -p 8081:80 -m 512m nginx

限制kill容器进程--oom-kill-disable

docker run -d -p --oom-kill-disable -p 8081:80 nginx

Java容器通过设置JAVA_OPTS全局变量限制JVM内存

docker run -d -e JAVA_OPTS="-Xms512m -Xmx512m" java

动态修改内存限制

docker 1.10以后支持docker update命令,动态修改运行中的容器内存大小

docker update -m 512m --memory-swap -1 [container-id]

以上就是本次分享。有什么想法,快留言吧:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值