如何设置Docker容器的CPU和内存使用限制
如何设置Docker容器的CPU和内存使用限制
1. 概述
在很多情况下,我们需要限制docker主机上资源的使用。
在本教程中,我们将学习如何设置docker容器的内存和CPU限制
2. 通过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共享起主要作用
3. 使用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:cpus: 0.25memory: 128M
一般情况下容器的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-compose.yaml应用,我们需要执行:
docker-compose up
4. 验证容器资源使用
一但,我们设置了Docker容器的资源使用,我们可以用docker stats命令来检查设置
$ docker statsCONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8ad2f2c17078 bael_stack_service.1.jz2ks49finy61kiq1r12da73k 0.00% 2.578MiB / 512MiB 0.50% 936B / 0B 0B / 0B 2
5. 结论
本文中,我们讨论了如何设置Docker容器资源的设置方法
如何设置Docker容器的CPU和内存使用限制相关推荐
- 设置Docker容器的CPU和内存使用限制
运行场景: 1.docker run 2.docker-compose 1. docker run CPU 限制 默认情况下,访问主机的CPU是无限制的,我们可以使用CPUs参数 ...
- Docker Cgroup资源配置(CPU、内存、磁盘)
一.Cgroup 资源配置方法 Docker 通过 Cgroup 来控制容器使用的资源配额,包括 CPU.内存.磁盘三大方面,基本覆盖了常见的资源配额和使用量控制. Cgroup 是 Control ...
- Docker容器对CPU资源隔离的几种方式
了解Docker的同学应该知道,Docker的一个很大的特性就是可以对各种资源做隔离以及限制,这些资源包括CPU.内存.网络.硬盘,关于内存.网络.硬盘的资源限制都比较好理解,无非就是分多少用多少,比 ...
- docker查看java资源_JDK11设置Docker容器资源感知
深入浅出docker+docker实战云图书 105.8元 (需用券) 去购买 > 一.背景 对于Java8的一些较早的版本(8u131以前?),如果部署在docker容器中,由于JVM不能感知 ...
- k8s下docker容器获取cpu核心数不准确导致高负载引发的宕机问题
看了很多书都说docker来部署应用可以隔离系统资源互不影响,直到这段时间出现的一系列问题又颠覆了我的认知. 发现docker并不能隔离真正隔离系统资源.最近k8s中的某一个应用总是被强制重启,由于监 ...
- 为什么Java 服务Docker容器耗尽了系统内存
Marek Goldmann | Resource management in Dockerhttps://goldmann.pl/blog/2014/09/11/resource-managemen ...
- Linux 设置Docker容器开机自启动,Dokcer容器常用命令总结。
文章目录 Linux Dokcer容器常用命令总结 一.docker 常用基础命令总结 二.工作中常用docker命令 三.查看容器挂载目录 四.容器拷贝文件 五.设置搭建好容器开机自启 六.开启do ...
- Rancher Docker容器管理CPU/内存/网络/IO监控面板
- Docker 图片水印中文乱码显示为方框, 设置Docker容器字体
水印中文不显示 原因 : 水印设置的字体在Linux系统中不存在 处理 : 在Docker里添加字体(在宿主机添加无效) 项目结构: 在DockerFile同级添加字体文件 编写Dockerfile文 ...
最新文章
- 高性能千万级定时任务管理服务forsun使用详解
- redis如何解决秒杀超卖java_Spring Boot + redis解决商品秒杀库存超卖,看这篇文章就够了...
- 工具的特性_16 个好用的 Code Review 工具
- opencv 高通滤波和低通滤波_滤波电路合集(低通滤波,CLCП滤波,DLC滤波,CRC П滤波)...
- 以普通用户启动的Vim如何保存需要root权限的文件
- 笔记本电脑自带麦克风吗_想让声音变得好听吗,不花一分钱,让你的电脑拥有外置麦克风...
- 几乎是苹果6倍!华为可穿戴设备出货量Q1同比猛增282%
- 公司技术部的罗强月薪10000,要跳槽
- qstring转string
- 中望3D 2021 线框设计“提取中心线”
- l455在线清零服务器,爱普生epson l455清零软件官方版
- QQ音乐2009去广告方法
- 通过精读一本英文技术书籍搞定英语
- python机器学习之回归预测:电池续航里程问题
- 昨天学了js的控制css样式,自己做了个算卦小程序
- 取消usb计算机连接网络,usb连接(如何设置usb网络连接)
- python爬取王者皮肤_Python爬取王者荣耀所有英雄以及高清大图
- 超有用的前端配色网站
- 京东金融-供应链金融业务介绍
- 从《雪白血红》说起(1)