• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > Docker 限制容器对内存的使用详解

Docker 限制容器对内存的使用详解

作者:CloudMan 字体:[增加 减小] 来源:互联网

本文主要包含docker限制容器内存,docker,容器内存,限制等服务器相关知识,CloudMan 希望可以进行参考

一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能。

内存限额

与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两组参数来控制容器内存的使用量。

1、 -m或--memory:设置内存的使用限额,例如 100M, 2G。

2、 --memory-swap:设置内存+swap的使用限额。

当我们执行如下命令:

docker run -m 200M --memory-swap=300M ubuntu

其含义是允许该容器最多使用 200M 的内存和 100M 的 swap。默认情况下,上面两组参数为 -1,即对容器内存和 swap 的使用没有限制。

下面我们将使用 progrium/stress 镜像来学习如何为容器分配内存。该镜像可用于对容器执行压力测试。执行如下命令:

docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M

--vm 1:启动 1 个内存工作线程。

--vm-bytes 280M:每个线程分配 280M 内存。

运行结果如下:

因为 280M 在可分配的范围(300M)内,所以工作线程能够正常工作,其过程是:

  1. 分配 280M 内存。
  2. 释放 280M 内存。
  3. 再分配 280M 内存。
  4. 再释放 280M 内存。
  5. 一直循环......

如果让工作线程分配的内存超过 300M,结果如下:

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

如果在启动容器时只指定-m而不指定--memory-swap,那么--memory-swap默认为-m的两倍,比如:

docker run -it -m 200M ubuntu

容器最多使用 200M 物理内存和 200M swap。

内存限额就讨论到这里,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:

  • Docker 给运行中的容器设置端口映射的方法
  • Docker如何进入启动容器
  • 关于Docker容器内部无法解析域名问题的解决
  • docker 容器上编译 go 程序提示找不到文件问题
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker如何限制容器可用的内存
  • Docker 限制容器对内存的使用详解

相关文章

  • 浅谈Windows平台上Docker安装与使用
  • VirtualBox 虚拟机中安装 Ubuntu 12.04(图文教程)
  • Docker使用Dockerfile来创建镜像
  • VMware12和CentOS7共享文件夹问题解析
  • docker入门之容器介绍
  • Gartner:服务器虚拟化形成中国IT拐点
  • docker基础知识之挂载本地目录的方法
  • 详细介绍kvm虚拟机静态和动态迁移(图文介绍)
  • docker pull镜像速度慢的问题解决方法
  • Docker多容器连接(以Tomcat+Mysql为例)

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 详解如何在 docker 容器中捕获信号
    • docker容器如何优雅的终止详解
    • Docker的boot2docker.iso镜像使用
    • 使用docker快速搭建Spark集群的方法教程
    • ubuntu kylin虚拟机中安装KVM
    • virtualbox win7 iis 由于扩展配置问题而无法提供您请求的页面
    • Citrix XenServer 6.1 的安装与配置方法
    • 详解使用 Docker 构建 LNMP 环境
    • Docker容器内不能联网的6种解决方案
    • Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有