如果是还没有生成的容器,你可以从指定镜像生成容器时特意加上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. Kali Linux 安全渗透教程第一更
  2. 【学习笔记】28、类的方法及参数介绍
  3. NYOJ 678 最小K个数之和
  4. 2-5-666:放苹果
  5. python 数据结构 树 dev get items_python数据结构之树(二叉树的遍历)
  6. 完工任务不允许更改需求
  7. python中的rt_TensorRT学习总结
  8. 【业务实战】批量生成二维码并打成压缩包
  9. Spark面试题及其答案
  10. 企业邮箱密码怎么找回?
  11. 轮流取石子游戏c语言答案,取石子游戏
  12. canvas-随机粒子特效
  13. cordova app强制横屏
  14. 关于gradle项目中使用queryDsl生成Q类的问题的解决方式
  15. 安徽省软考报名时间成绩查询安徽省教育考试院安徽省人事考试网报名入口
  16. 随机获得map/json中的一组键值对
  17. LeetCode1833-雪糕的最大数量
  18. 双色球彩票 选购程序
  19. 数据结构基本操作总结(C语言版)---链表、栈与队列
  20. linux设备驱动之USB数据传输分析

热门文章

  1. C++/OpenGL 入门(18):读取obj文件并贴图
  2. ​word分节符与分页符的区别与用法
  3. 邮箱POP3及SMTP服务器地址大全
  4. 2021nhoi挖矿
  5. 基于esp32 Arduino自制蓝牙HUD显示
  6. 配置OPTIONS请求
  7. 意大利黑手党2mac版下载
  8. 交互媒体技术——作品推荐
  9. js -- 车牌号对应的归属地js文件
  10. 小程序监听点击底部tabbar事件