如何设置Docker容器的CPU和内存使用限制

容器布署后数,每个容器占用资源数不同,当资源不够用时,互相影响,docker提供上资源使用限制功能

  1. 查看docker 容器内存及CPU使用命令

docker stats

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
c7bdcdc77786        7.04%               1.212 GiB / 7.638 GiB   15.87%              0 B / 0 B           8.08 MB / 372 MB    183
da75d82bfa9c        7.21%               1.5 GiB / 7.638 GiB     19.64%              0 B / 0 B           9.86 MB / 372 MB    184
4769f05b983c        7.66%               1.225 GiB / 7.638 GiB   16.04%              0 B / 0 B           13.6 MB / 372 MB    187

. 通过docker run来限制Docker容器资源
我们可以使用docker run命令直接设置资源限制。这是一个简单的办法。但是,该限制于只适用于映像的一次特定执行任务

2.1 Memory 内存限制
例如,让我们将容器可以使用的内存限制为512mb

docker run -m 512m nginx

我们还可以设置一个软限制或者叫保留,当docker检测到主机内存不足时激活:

docker run -m 512m --memory-reservation=256m nginx

2.2 CPU 限制
默认情况下,访问主机的CPU是无限制的,我们可以使用CPUs参数设置cpu限制。例如,让我们约束容器最多使用两个cpu:

docker run --cpus=2 nginx

我们还可以指定CPU分配的优先级。默认值是1024,数字越高优先级越高:

docker run --cpus=2 --cpu-shares=2000 nginx

与内存保留,当计算能力不足且需要在竞争进程之间进行分配时,CPU共享起主要作用

使用docker-compose文件来设置容器资源
我们可以使用docker-compose文件来实现类似的结果。请注意,不同版本的docker-compose的格式设置上是不同的

3.1 docker swarm Versions 3 以上的版本
让我们给Nginx的服务限制是一半的CPU和512m的内存,保留四分之一的CPU和128m的内存。我们需要在我们的服务配置中创建“部署”和“资源”分段:

services:service:image: nginxdeploy:resources:limits:cpus: 0.50memory: 512Mreservations:memory: 128M

注:reservations没有设置cpus的命令
一般情况下容器的cpus使用被限制在一半,内存为512MB ,如果服务器资源紧张的时候,cpus占用变为1/4,内存占用被限制为128MB

如果要使用上述docker-compose.yaml部署应用我们需要使用docker stack命令 , 部署应用到swarm中

docker stack deploy --compose-file docker-compose.yml bael_stack

3.2 docker-compose Version 2 配置方式
在旧版本的docker-compose中,我们可以将资源限制放在与服务的主要属性相同的级别上。它们的名字也略有不同:

service:image: nginxmem_limit: 512mmem_reservation: 128Mcpus: 0.5ports:- "80:80"

Docker容器的资源使用限制相关推荐

  1. 详解docker容器的资源监控方案

    docker资源的监控方案 如何监控docker容器整体的资源利用率呢?如何监控独立docker容器的资源利用率呢? 先说结论:前者用kubesphere或者rancher(大厂都是自己搞的监控系统) ...

  2. docker容器的资源消耗

    将jar放入docker容器是需要占用很多空间的. 比如我一个jar也就60M,结果生成容器后,直接干到了360M以上的空间,我一堆jar准备用docker运行的,直接把我的linux的20G磁盘空间 ...

  3. docker查看java资源_JDK11设置Docker容器资源感知

    深入浅出docker+docker实战云图书 105.8元 (需用券) 去购买 > 一.背景 对于Java8的一些较早的版本(8u131以前?),如果部署在docker容器中,由于JVM不能感知 ...

  4. 《Docker——容器与容器云》:第一章 从容器到容器云

    2013年初,一个名字从云计算领域横空出世,并在整个IT行业激起千层浪.这就是Docker--一个孕育着新思想的"容器".Docker选择容器作为核心和基础,依靠容器技术支撑的Do ...

  5. CentOSLinux安装Docker容器

    Docker 使用 环境说明 CentOS 7.3(不准确地说:要求必须是 CentOS 7 64位) 不建议在 Windows 上使用 Docker 基本概念 官网:https://www.dock ...

  6. Docker容器安全性分析

    Docker是目前最具代表性的容器技术之一,对云计算及虚拟化技术产生了颠覆性的影响.本文对Docker容器在应用中可能面临的安全问题和风险进行了研究,并将Docker容器应用环境中的安全机制与相关解决 ...

  7. Docker容器化开发流程(一)介绍

    文章目录 目标 容器化开发模式 生产环境使用docker 的问题 容器化流程 目标 了解容器化开发模式 了解容器化开发流程 参考: Docker技术入门与实战 第二版 书籍 [认识容器](https: ...

  8. 为什么用Yarn来做Docker容器调度引擎

    这篇文章是在一个微信群里和人聊天,然后整理出来的文字.当时Hulu推出了基于Yarn的Docker调度引擎.我正好那段时间也实现了一个类似的,经过交流,发现最后的实现基本是一致的.然而业界用的较多的是 ...

  9. 如何设置Docker容器的CPU和内存使用限制

    如何设置Docker容器的CPU和内存使用限制 1. 概述 在很多情况下,我们需要限制docker主机上资源的使用. 在本教程中,我们将学习如何设置docker容器的内存和CPU限制 2. 通过doc ...

  10. Docker安全加固——利用LXCFS增强docker容器隔离性和资源可见性

    前言 lxcfs是一个开源的FUSE(用户态文件系统)实现来支持LXC容器. LXCFS通过用户态文件系统,在容器中提供下列 procfs 的文件: /proc/cpuinfo /proc/disks ...

最新文章

  1. 扩展typeof来判断js变量的类型
  2. 加速产业生态算力升级,华为鲲鹏展翅福州
  3. python基础包括什么-Python基础教程 模块包含什么
  4. 【Linux 内核】线程调度示例一 ② ( 获取指定调度策略的最大和最小优先级 | 代码示例 )
  5. cesium添加填充_cesium编程中级(四)使用渐变纹理
  6. 【Objective-C】Http常用API、同步请求与异步请求[转]
  7. C#反射读取和设置类的属性
  8. php 字符串过滤指定字符,php字符串过滤与替换小结
  9. c# implicit explicit关键字(隐式和显式数据类型转换)
  10. xampp mysql使用教程_nodejs使用xampp中的mysql教程
  11. 【前端——补充学习】解决emos项目报错、路由、组件
  12. et200sp系统服务器模块,ET200SP GSD文件组态时服务器模块的选择方法
  13. DNS服务器的安装与配置
  14. 康奈尔笔记记录法[转
  15. HMM隐马尔可夫模型详解
  16. WebGoat8 M17 Password Reset 密码重置 答案、思路、题解
  17. 二维码解码器Zbar 的配置和基本使用
  18. 开源后台管理框架之AdminLTE学习
  19. 黑马程序员—【教学软件】广播软件下载
  20. Praat脚本-005 | 标注文件批量增加层级

热门文章

  1. 西门子安装未找到ssf文件_西门子Step7 V5.5 中文版+Sp1 安装教程
  2. 2021软件测试、自动化测试、面试题整理
  3. 日置BT3562无法开机怎么办,日常如何进行保养
  4. 原生js格式化显示json对象以及stringify的妙用
  5. 关于投资收益和风险的例题(线性规划)
  6. jedate日期插件使用
  7. HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解
  8. 在Java 中 使用 AWS SNS 来发送短信的例子
  9. 解决sns加载数据load_dataset()报错问题
  10. 离线网页 HTML+CSS+DIV