一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源。容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他容器乃至整个Host的性能。

内存限额

与操作系统类似:容器使用的内存包括两部分:物理内存和swap内存

1.可以使用参数来控制容器内存的使用量

      -m或者是--memory:设置内存使用限额,例如:100M,2G

      --memory-swap : 设置内存+swap的使用限额(总内存)

设置物理内存为400M swap内存为100M

2.使用progrium/stress镜像 来分配容器内存,progrium/stress可用于对容器内存执行压力测试

下载镜像

运行一个progrium/stress镜像的容器

--vm 1:启动一个线程

--vm-bytes 280M :为这个线程分配280M内存

因为280M内存在300M范围内,所以能够正常运行,其过程是:

1.分配280M内存

2.释放280M内存

3.再分配280M内存

4.释放280M内存

5.一直循环下去。。。。。

但是当我们运行一个比内存大的线程时,系统是否正常?

由于分配的内存超过限额,stress线程报错,容器退出

当我们在运行容器只指定了-m而没有指定--memory-swap时,--memory-swap默认是-m指定的两倍

使用docker 的-m的参数进行容器内存分配的时候,内核可能会出现一下错误:

Your kernel does not support swap limit capabilities.memory limit without swap:这是由于内核不支持限制内存的设置

解决办法是:vim /etc/default/grub

修改为:

或者:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

重启后可以解决

centos7下安装docker(9容器对资源的使用限制-内存)的更多相关文章

  1. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  2. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  3. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  4. centos7 下安装docker报错:You could try using...

    搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...

  5. centos7下安装docker(19容器架构)

    What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...

  6. centos7下安装docker(11容器操作总结)

    这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...

  7. centos7下安装docker(10容器底层--cgroup和namespace)

    cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...

  8. centos7下安装docker(8.3容器的常用操作)

    yu我们之前已经学习了如何运行容器docker run,也学习了如何进入容器docker attach和docker exec,下面我们来学习容器的其他操作: stop/start/restart 1 ...

  9. centos7下安装docker(13.4容器volume总结)

    最近我们学习了docker 存储,首先docker存储有两种:storage driver和data volume. storage driver是由镜像层和容器层组成的,可以通过docker ins ...

  10. centos7下安装docker(12.4容器如何与外部进行通信)

    1.容器如何访问外部 前面我们做了很多试验:只要host能连外网,使用默认bridge(docker0)创建得容器就能访问外网,那么容器是怎样访问外网的呢? 注:这里的外网不仅是internet,包括 ...

随机推荐

  1. Vim——回顾整理

    一.命令练习(一) hjkl(左下上右) 保存到某路径 :saveas 路径 w 到下一个单词的开头 e 到下一个单词的结尾 % 括号匹配移动(),{},[] 0 到行头 $ 到行头 gU字母变大写 ...

  2. [android] 手机卫士项目

    按照模块组织代码的包结构:各个模块之间的业务是独立的 风行网 ----播放器 com.funshion.android.player ----下载模块 com.funshion.android.dow ...

  3. 海西 · 云交付 DevOps实践落地方案

    ​ 一.背景概述 (一)产品背景 1.互联网+的需要   在信息越来越繁杂的互联网时代,公司所运行的项目越来越多,项目相关服务繁多,服务之间存在复杂的依赖关系,运维与管理任务越来越繁重,手工交付需要花 ...

  4. Python十讲 - 第一讲:从零开始学Python

    之后慢慢添加... Python语言的背景知识

  5. extract-text-webpack-plugin 作用、安装、使用

    作用:该插件的主要是为了抽离css样式,防止将样式打包在js中引起页面样式加载错乱的现象 安装:插件安装命令如下: npm install extract-text-webpack-plugin -- ...

  6. 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解

    1.2017前端面试题及答案总结 |掘金技术征文 "金三银四,金九银十",用来形容求职最好的几个月.但是随着行业的饱和,初中级前端er就业形势不容乐观. 行业状态不可控,我们能做的 ...

  7. 2018-01-17 Antlr4实现简单语言之整数比较表达式

    续上文Antlr4: 修改语法规则更接近普通BNF格式. 例程 为先=1 为先 为2 => 返回false '为'作为关键词, 与数字可以连写, 但必须与变量名用空格间隔: 变量一=1 变量二= ...

  8. gulp使用 笔记

    全局安装gulp,也需要本地安装gulp插件.全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能 //导入工具包 require('node_modules里对应模 ...

  9. 解决ie7,ie8下a链接无效问题

    .person a{ display: block; position: absolute; width: 109px; height: 33px; bottom: 19px; right: 40px ...

  10. 【机器学习】激活函数(Activation Function)

    https://blog.csdn.net/ChenVast/article/details/81382795 激活函数是模型整个结构中的非线性扭曲力 神经网络的每层都会有一个激活函数 1.逻辑函数( ...