Docker实践之05-限制Docker容器运行资源
Docker容器在默认情况下会使用宿主机的所有CPU和内存资源,为了明确限制每一个Docker容器的运行资源,需按如下操作进行设置。
首先,执行:sudo docker info,如果提示:“WARNING: No swap limit support”,表示系统未开启资源隔离支持。
解决办法:
1.编辑/etc/default/grub文件
2.找到GRUB_CMDLINE_LINUX=配置项,并追加“cgroup_enable=memory swapaccount=1”(注意:如果GRUB_CMDLINE_LINUX=内有内容,切记不可删除,只需在后面追加cgroup_enable=memory swapaccount=1并用空格和前面的内容分隔开。)
其次,在启动容器时指定参数限定CPU和内存资源:
--cpus=N : 限制CPU核数
-m or --memory=4096m :容器可使用最大内存为4g,单位可以为 b,k,m,g
--memory-swap=4096m :只有当--memory设置之后,--memory-swap 才会生效
例如:
sudo docker run -it --cpus=4 -m 4096M --memory-swap=4096M -v $(pwd)/config:/data/config ai-media-hub:latest /bin/sh
sh-4.2#
如何查看真正分配到的资源?
如上,启动并进入到Docker容器之后,如果是执行top命令,或者cat /proc/cpuinfo等方式查看容器本身的资源信息是行不通的,通过这些命令查看到的都是宿主机本身的信息。
在容器内部使用如下命令查看Docker容器真正的资源信息:
1.查看内存大小
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
4294967296
查询结果单位为字节,如上:Docker容器的内存大小为4GB。
2.查看CPU核数
expr `cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us` / `cat /sys/fs/cgroup/cpu/cpu.cfs_period_us`
4
如上:Docker容器分配的CPU核数为4。
【参考】
https://www.k2zone.cn/?p=2356 解决docker警告WARNING: No swap limit support
https://www.cnblogs.com/cptao/p/10936256.html docker内存限制
https://blog.csdn.net/hknaruto/article/details/107511106 Docker在容器中获取当前实例内存限制、CPU限制
https://www.cnblogs.com/sparkdev/p/7821376.html 查看 docker 容器使用的资源
Docker实践之05-限制Docker容器运行资源的更多相关文章
- docker学习笔记-05:Docker安装mysql和redis
一.安装mysql 1.docker hub 上查找mysql镜像 docker search mysql 2.从docker hub (使用阿里云加速器)拉取mysql镜像到本地标签为5.6 doc ...
- kubernetes/k8s CRI分析-容器运行时接口分析
关联博客:kubernetes/k8s CSI分析-容器存储接口分析 概述 kubernetes的设计初衷是支持可插拔架构,从而利于扩展kubernetes的功能.在此架构思想下,kubernetes ...
- Docker实践 - 安装Docker并在容器里运行tomcat
安装Docker yum install docker 本文使用的系统是centos7,ubuntu使用以下命令 sudo apt-get update sudo apt-get install do ...
- 企业运维实践-丢弃手中的 docker build , 使用Kaniko直接在Kubernetes集群或Containerd环境中快速进行构建推送容器镜像
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 首发地址: h ...
- 【容器云】传统金融企业的 Docker 实践
基于 Docker 的容器云-Padis 目前市面上基于容器云的产品有很多,对于平安而言,则是基于 Docker 的 Padis 平台.所谓 Padis,全称是 PingAn Distribution ...
- ASP.NET CORE做的网站运行在docker实践
用VS2017 建立了 DotNet Core 2.2 的网站后,如何转移到 Docker 下运行? 下面分两种方式来实践: 1.直接手动命今行,将本机目录映射进Docker,运行网站.2.制作 Im ...
- 利用docker容器运行.net core webapi
利用docker容器运行.net core webapi :first-child { margin-top: 0 !important; } > :last-child { margin-bo ...
- Docker笔记(十三):容器日志采集实践
日志是服务运行过程中的一个关键环节,借助日志,我们可以排查定位问题,也可以借助集中化的日志管理平台(如ELK)来做一些必要的数据统计分析.在Docker环境中,日志的采集比传统环境更为复杂,因此了解D ...
- Kubernetes容器运行时弃用Docker转型Containerd
文章转载自:https://i4t.com/5435.html Kubernetes社区在2020年7月份发布的版本中已经开始了dockershim的移除计划,在1.20版本中将内置的dockersh ...
- 理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
随机推荐
- [转帖]巧用 Docker Buildx 构建多种系统架构镜像
http://www.taodudu.cc/news/show-4511396.html?action=onClick Docker Buildx 是一个 Docker CLI 插件,其扩展了 Doc ...
- Debian 安装vim 提示版本问题的处理
https://blog.csdn.net/Oil__/article/details/113384278 purge 还有 --allow-remove-essential 安装失败提示解决方法安装 ...
- 工单 工序外协 更改PR/PO
工序外协详解介绍'https://blog.csdn.net/weixin_43814706/article/details/113586961' 需求:创建工序委外的工单时更改对应PR/PO 行文本 ...
- 浅谈kafka
作者:京东科技 徐拥 入门 1.什么是kafka? apache Kafka is a distributed streaming platform. What exactly dose that m ...
- node中的优先从缓存中加载模块与模块的加载规则
执行 node main.js 请问 b模块会被加载几次 //main.js require('./a.js') var fn = require('./b.js') console.log(fn.s ...
- echarts给每个柱状图配置不同的颜色
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js引起的 xxxx of null
在 vue 中操作 dom 元素的时候,报错 style of null 这个报错的原因,跟你代码的健壮性有关了; 这样就不会报错了 if( document.querySelectorAll(&qu ...
- kettle系统列文章02---如何建立一个转换
1.连接mysql 主对象树---->DB连接---->新建 2.连接sqlserver 主对象树--->DB连接----->新建 3.设置数据库为共享:在db上右键---&g ...
- P7900 [COCI2006-2007#2] SJECIŠTA_题解
[COCI2006-2007#2] SJECIŠTA_题解 rt 我们来看一下题目描述 考虑一个有 \(n\) 个顶点的凸多边形,且这个多边形没有任何三个(或以上) 的对角线交于一点. 这句话什么意思 ...
- PaddleNLP基于ERNIR3.0文本分类以中医疗搜索检索词意图分类(KUAKE-QIC)为例【多分类(单标签)】
相关项目链接: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] Paddlenlp之UIE分类模型[以情感倾向分析新闻分类为例]含智能标注方案) 应用实践:分类模型大集成者[Pad ...