如果是还没有生成的容器,你可以从指定镜像生成容器时特意加上run -m 256m 或 --memory-swap=512m来限制。

-m操作指定的是物理内存,还有虚拟交换分区默认也会生成同样的大小,而--memory-swap的值则等于两者的总和大小。

如果是已在运行中的容器,可以通过docker update命令来实现:

docker update --help可查看到用法,如上图所见。

-m --memory为设置内存最大值;默认单位为byte,可以使用K、G、M等带单位的字符串。

--memory-reservation 是弹性控制内存大小,防止损失性能,建议要开。当宿主机资源充足时,允许容器尽量多地使用内存,当检测到内存竞争或者低内存时,强制将容器的内存降低到memory-reservation所指定的内存大小。按照官方说法,不设置此选项时,有可能出现某些容器长时间占用大量内存,导致性能上的损失。

–-memory-swap:等于内存和swap分区大小的总和,设置为-1时,表示swap分区的大小是无限的。默认单位为byte,可以使用K、G、M等带单位的字符串。如果–memory-swap的设置值小于–-memory的值,则使用默认值,为–-memory-swap值的两倍。

默认情况下,容器可以使用主机上的所有空闲内存。

docker会自动为容器在目录/sys/fs/cgroup/memory/docker/中创建相应cgroup配置文件,所以在宿主机内查看容器使用的内存配额可以通过查看相应的配置文件得知:

好比如上图

在cgroups的配置文件中,查看到容器的内存大小为256MB (256×1024×1024=268435456B),内存和swap加起来大小为512MB(512x1024x1024=536870912)。

注:我实际查看线上的容器时没有限制内存和swap的大小,后来自行敲了docker update --memory-swap=512 容器ID 的命令重新再看才变成512MB了。

例:

docker stats 容器ID 可查看容器实际使用中的资源配额,以上例子中的容器是做mysql用的,可见挺耗内存的。而wordpress博客的容器使用中的内存才122MB左右。256M也足够了。

现在怀疑之前容器隔一周两周就自动退出也是因为没做限制倒致宿主机oom将其kill。

目前free -h观测宿主机没有不停增长使用的内存了,估计就是这个原因所致。

by:铁乐与猫

2017年9月

end

指定docker容器内存_Docker指定容器使用内存相关推荐

  1. Docker小白到实战之容器数据卷,整理的明明白白

    前言 上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失.从隔离性的角度来看,数据就应该和容器共存亡:但 ...

  2. (五)Docker查看容器ip及指定固定IP

    如不懂Docker的网络模式及网络配置的请查看Docker四种网络模式和Docker网络配置 一.Docker如何查看容器ip docker inspect <container-ID> ...

  3. docker 删除所有未启动的容器_Docker 镜像容器常用操作(让我们用 docker 溜得飞起)...

    推荐阅读: 面试字节跳动三轮凉凉,内推4面终拿下抖音offer(Java后台研发)​zhuanlan.zhihu.com 一线架构师Spring boot 学习笔记:我的成长全记在这份PDF文档里​z ...

  4. docker 挂载目录_Docker容器数据管理

    在Docker容器内部创建的文件默认存储在可写的容器层,容易产生几个问题: 当容器不存在时,数据文件不能持久化,同时这些数据文件不方便在容器之外被其他进程使用. 当容器运行的时候容器可写层严重依赖宿主 ...

  5. elasticsearch docker无法挂载_Docker 容器监控方案怎么选?看看这套开源方案

    来自:简书,作者:__七把刀__ 链接:https://www.jianshu.com/p/abfa502e43a6 随着线上服务的全面docker化,对docker容器的监控就很重要了.SA的监控系 ...

  6. Pod创建多个容器并访问指定容器

    Pod创建多个容器并访问指定容器 本文章案例是采用helm提供的模板来管理kubernates,如果您想了解helm,您可以访问helm docs进行了解. 文章目录 Pod创建多个容器并访问指定容器 ...

  7. docker 进入容器命令_Docker容器常用命令分享,赶紧收藏

    1. docker run 创建一个新的容器并运行一个命令 用法:docker run [OPTIONS] IMAGE [COMMAND] [ARG-] 1.1.创建一个新的容器并运行一个命令 1.2 ...

  8. docker php安装gd扩展_docker php 容器安装GD库

    用thinkphp 5 Image库,创建缩略图报错:Call to undefined function imagecreatefromjpeg(),度娘一下发现是php 环境没有配置GD库扩展,因 ...

  9. Docker最全教程——Redis容器化以及排行榜实战(十三)

    Docker最全教程--Redis容器化以及排行榜实战(十三) 原文:Docker最全教程--Redis容器化以及排行榜实战(十三) 前言 容器教程的路还很长,笔者尽量根据实践来不断地完善.由于在编写 ...

最新文章

  1. linux系统管理员的家目录是,最新linux网络操作系统与实训 课后习题答案汇编...
  2. 语义匹配(二)搜狐文本匹配大赛BaseLine比较:P-tuning和Conditional_LN实现多任务语义匹配
  3. spring boot配置文件【application.yml】常见问题之一,未添加空格
  4. asp.net 微信企业号办公系统-流程设计--保存与发布
  5. 1346. 检查整数及其两倍数是否存在 golang
  6. 一加6html查看程序,一加6T评测:极速屏下指纹,解锁你想要的轻快顺滑
  7. 用一句话阐明epoll跟Windows IOCP之间的区别
  8. Html5 + fromData + Spring MVC 单文件、多文件上传
  9. IE下 jqModal的问题
  10. 《剑指offer》第三十三题(二叉搜索树的后序遍历序列)
  11. scsi服务器硬盘如何用,实战:不重启服务器添加scsi硬盘
  12. 工作记忆的认知神经科学
  13. 程序员主流代码编辑器,你用过多少款?
  14. rman命令之crosscheck
  15. MATLAB与高等数学--极限计算
  16. cf手游服务器维护19年9月19,CF9月新灵狐的约定计划活动_2019CF9月新灵狐的约定计划活动网址_快吧游戏...
  17. 使用git上传本地项目到码云
  18. 关于微信小程序API——wx.getLocation定位不准的问题
  19. 关乎谷歌浏览器打不开ftp的问题
  20. 适合上班族做的5个副业推荐?适合下班后做的副业推荐

热门文章

  1. 从技术出发 | 有孚网络吕鑫:生信海量数据管理的实践与探讨
  2. 51单片机(汇编语言)实现十进制转十六进制
  3. 原生工程接入Flutter实现混编
  4. javascript闭包的理解
  5. 社团划分——Fast Unfolding算法
  6. 迷宫路线寻找算法的matlab仿真
  7. subtext3php,Sublimetext 3 实现编辑markdown时同步刷新网页预览
  8. 微信小程序引用fontawesome字体
  9. 第十届(2022年)全国大学生机械创新设计大赛参赛须知
  10. 2022年王道数据结构考研复习指导习题代码(栈和队列)