一 引言

我们使用docker时,经常会遇到docker容器使用内存大于docker宿主机内存,导致宿主机奔溃,从而影响其他宿主机上容器的运行。 因此我们在使用docker容器的时候需要限制内存。

二 命令

1 启动容器时限制容器内存

docker run -m 4g --memory-swap -1

2 限制已启动容器的内存

docker stop containerId
docker update containerId -m 4g  --memory-swap -1
docker start containerId

备注:命令详解

--memory  或  -m  限制容器的内存使用量(如10m,200m等)
--memory-swap # 限制内存和 Swap 的总和,不设置的话默认为--memory的两倍
'''
如果只指定了 --memory 则 --memory-swap 默认为 --memory 的两倍
如果 --memory-swap 和 --memory 设置了相同值,则表示不使用 Swap
如果 --memory-swap 设置为 -1 则表示不对容器使用的 Swap 进行限制
如果设置了 --memory-swap 参数,则必须设置 --memory 参数
后期 update --memory 时数值不能超过 --memory-swap 的值,否则会报错 Memory limit should be smaller than already set memoryswap limit
'''

3 查询是否配置成功

docker inspect containerId

三 遇到的错误

1 ubuntu 宿主机系统默认未开启swap限制

(1) 错误表现:

Your kernel does not support swap limit capabilities or the cgroup is not mounted

(2)解决方案

// 1 打开/etc/default/grub文件
sudo vi /etc/default/grub
// 2 加入下面配置
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
// 3 更新grub系统
sudo update-grub
// 4 重启电脑

2 命令中未设置–memory-swap

(1)错误表现

Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same time

(2)错误原因
ocker 默认没有启用memory-swap交换内存,直接设置了内存问题会出问题,也就是说宿主 swap 支持使用多少则容器即可使用多少
(3)解决方式
设置内存的同时必须设置–memory-swap

四 衍生docker命令官网

docker 命令官网
docker run
docker update

docker限制容器内存相关推荐

  1. 使用 docker 对容器资源进行限制

    在使用 docker 运行容器时,一台主机上可能会运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU.内存和磁盘资源.如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说 ...

  2. docker容器内存和CPU使用限制

    docker容器内存和CPU使用限制 示例如下 sudo docker run --name seckill0 -p 8080:8080 -m 1024M --cpus=0.2 -d seckill: ...

  3. docker mysql 内存大小_docker容器内存占用过高(例如mysql)

    简介 该文章适用于配置低,特别是内存低的服务器,在用容器部署服务时有可能会因为容器占用内存过高导致服务挂掉时参考解决(不是运行在容器里的话,同理也可以修改mysql的配置文件限制内存占用) docke ...

  4. 指定docker容器内存_Docker指定容器使用内存

    如果是还没有生成的容器,你可以从指定镜像生成容器时特意加上run -m 256m 或 --memory-swap=512m来限制. -m操作指定的是物理内存,还有虚拟交换分区默认也会生成同样的大小,而 ...

  5. 【云原生】监视Docker桌面的容器内存和CPU使用情况

    目录 一.如何监视Docker桌面的容器内存和CPU使用情况 1.stats命令 2.Docker 统计命令stats是如何工作的 2.1.命令与描述 2.2.OPTIONS 2.3.例子 2.4.格 ...

  6. docker限制容器的cpu内存使用率

    文章目录 说明 查看docker资源使用情况及参数详解 内存限制说明 内存使用测试 限制内存最大使用量 关于内存的其他限制 全部说明 memory & memory-swap Memory r ...

  7. linux docker 限制容器可用的 cpu

    默认情况下容器可以使用的主机 CPU 资源是不受限制的.和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源 ...

  8. docker停止容器后配置_整理了一份 Docker系统知识,从安装到熟练操作看这篇就够了 | 原力计划...

    作者 | IronmanJay 责编 | 王晓曼 出品 | CSDN博客 Docker 基础介绍 下图为 Docker 图标(是一个鲸鱼上面是集装箱). 1.我们为什么要使用Docker 当我们在工作 ...

  9. docker 查看容器_Docker介绍

    docker介绍 什么是docker?我们先看一下官方文档对docker的定义.翻译一下就是:Docker是一个集开发,发布和运行应用程序的开放平台.Docker能够分离应用和基础架构,从而可以使得用 ...

最新文章

  1. 分布式系统理论之两阶段提交协议
  2. oracle 数据不可恢复,Oracle数据恢复:错误叠加导致灾难不可恢复解决办法
  3. adsl服务器客户端配置cisco_基于ISE对Cisco网络设备部署AAA
  4. 网站开发建设过程中所涉及到的技术问题应当如何面对?
  5. JavaScript MVC之Jamal
  6. java项目(注册和登录(成功后查看商品的信息))
  7. 验证网站地址是否有效
  8. 系统设计说明书案例_案例 | 太阳能+热泵枸杞烘干系统设计及经济性分析
  9. java面试题二十一 异常
  10. C++语言基础 —— 控制结构
  11. 滑动窗口最大值的golang实现
  12. typora markdown 标题自动编号
  13. caffe win 还是 linux,caffe的windows版本安装,超级简单
  14. JCGridMenu
  15. 新路由3 Newifi3 D2 Lede固件
  16. 推动5G+北斗高精度定位系统更好赋能千行百业
  17. 计算机知识竞赛策划案,计算机基础知识竞赛策划书.doc
  18. ENVI添加指北针/比例尺
  19. dxdiag windows硬件检测
  20. dell 730xd硬raid配置

热门文章

  1. NVIDIA APX 能直接运行QUAKE 3,真正的手机3D游戏时代不远了!
  2. 神经网络算法详解 04:反馈神经网络(Hopfield、BAM、BM、RBM)
  3. drupal上安装chatroom
  4. 角度转弧度根据弧度计算圆周上点的坐标的方法
  5. 国内外免费的建站程序汇总(收藏)
  6. 莫名其妙的中了流氓软件
  7. java 文件及流读取
  8. 什么是原始股,原始股与股权有什么不同
  9. 【学者风采】沈向洋 清华大学
  10. win10文件无法删除,粉碎机也无法删除