Docker 资源实战:cpu/内存配置:
#查看帮助
docker run --help
docker update --help #配置容器使用cpu /内存大小--privileged 给与容器特权
docker run -itd --privileged --name=precious --cpuset-cpus=0-0 -m 512m centos7-ssh
#查看容器的内存/cpu
docker inspect 558bd2ec40fd|more|grep -iE "cpu|Memory"
#updata 参数:在线扩容/缩容功能
docker update --cpuset-cpus=0-1 -m 1024m 558bd2ec40fd
docker update --cpuset-cpus=0-0 -m 516m 558bd2ec40fd #滚动查看容器内存/cpu 使用状态: --no-stream(静态显示)
docker stats 558bd2ec40fd --no-stream
docker stats 558bd2ec40fd --no-stream|awk '{print $2,$3,$4}'
docker stats 558bd2ec40fd --no-stream|awk 'NR>1 {print "CPU:"$2}'

 

Docker 资源实战:磁盘配额
docker 容器默认启动的虚拟机,会占用宿主机的资源(CPU、内存、硬盘),例如默认docker基于0verlay2驱动方式,容器硬盘的rootfs根分区空间是整个宿主机的空间大小。
可以指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件:/etc/sysconfig/docker(注意:版本不同,配置文件也不同),OPTIONS参数后面添加如下代码,指定Docker容器rootfs容量大小为40G:
OPTIONS='--storage-opt overlay2.size=40G'
以上方法只适用于新容器生成,并且修改后需要重启docker。无法做到动态给正在运行指定大小:
 

1.13.x版本修改:docker 存储配置文件,加入如下代码:(默认如果已经为overlay2,则无需修改)修改后重启docker
vim /etc/sysconfig/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-driver overlay2 "

vim /etc/sysconfig/docker
OPTIONS='--storage-opt overlay2.size=40G'

1.19.x(ce)版本修改:docekr配置文件:在ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -b=br0后面添加如下代码:
vim //usr/lib/systemd/system/docker.service
--storage-opt overlay2.size=40G

Overlar2 Docker 磁盘驱动模式,如果要调整其大小,通过如上的方法,会导致docker引擎服务无法启动,还需要让Linux文件设置为xfs, 并且支持目录级别的磁盘配额功能:
centos7.x xfs磁盘配额配置,新添加一块硬盘,设置磁盘配额方法如下:
1)新添加一块硬盘: fdisk -l

2)格式化硬盘为xfs文件系统格式:
mkfs.xfs -f /dev/sdb

3)创建data目录,后续作为 docker数据目录:
mkdir -p /data/
 
4)挂载data目录,并且开启磁盘配额功能(默认xfs支持配额功能):
挂载配额类型如下:
根据用户(uquota/usrquota/quota)
根据组(gquota/grpquota)
根据目录(pquota/prjquota)
mount -o uquota,prjquota /dev/sdb /data/

6)通过命令xfs quota设置来为precious用户和目录分配配额,也可以通过命令来查看配额信息:
xfs_quota -x -c 'limit bsoft=10M bhard=10M precious' /data
xfs_quota -x -c 'report' /data/

切换precious用户测试:(保证用户需要有写权限)
chmod o+w /data/ -R
su precious
cd /data/
dd测试语法:创建空文件(输入或输出)
dd if=[STDIN] of=[STDOUT]

7)将docker引擎默认数据存储目录:/var/lib/docker重命名,并且将/data/docker目录软链至/var/lib/下即可:(需要关闭docker服务)
mkdir -p /data/docker/
mkdir -p /data/docker-engine
cd /var/lib/
mv docker docker.bak
mv docker /data/
ln -s /data/docker/ .
ln -s /data/docker-engine/ .

或者修改配置文件:docker.service

#z找到ExecStart部分,在此行末尾添加 --graph=你的目录:
--graph=/data/docker

systemctl restart docker时会报错,重新加载下即可
systemctl daemon-reload
systemctl restart docker

再次docker indo查看,发现目录已改变

8)重启docker服务,并且查看进程,可以看到docker overlay2.size大小配置:
systemctl restart docker
ps -ef|grep docker
9)基于docker服务器启动docker容器,并且查看最新容器的磁盘空间为40G,则设置容器大小成功:
docker run -itd centos7-ssh
docker exec 容器ID df -h

配置10G并验证:
vim //usr/lib/systemd/system/docker.service
--storage-opt overlay2.size=10G
 

将磁盘挂载加入开机自启动:vim /etc/fstab(慎重修改,改不好可能导致系统起不来)
/dev/sdb        /data/  xfs     defaults,uquota,prjpuota 0 0
/dev/sdb /data/ xfs defaults,uquota,prjquota 0 0

出现此界面直接输入密码即可:(莫要惊慌)

Docker磁盘&内存&CPU资源实战的更多相关文章

  1. Docker技术入门与实战 第二版-学习笔记-5-容器-命令及限制内存与cpu资源

    1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“H ...

  2. docker容器资源限制:限制容器对内存/CPU的访问

    目录 一.系统环境 二.前言 三.docker对于CPU和内存的限制 3.1 限制容器对内存的访问 3.2 限制容器对CPU的访问 一.系统环境 服务器版本 docker软件版本 CPU架构 Cent ...

  3. 如何使用 Docker 来限制 CPU、内存和 IO等资源?

    如何使用 Docker 来限制 CPU.内存和 IO等资源?http://www.sohu.com/a/165506573_609513

  4. docker的memory和cpu资源限制

    这里仅针对docker本身,不涉及任何编排工具compose或者k8s等. 按照惯例,官文撸起来. 重要的部分是一些选项,用来限制资源大小. Memory Most of these options ...

  5. 服务器为什么这么慢?耗尽了CPU、RAM和磁盘I/O资源

    机器运行缓慢通常是由于消耗了太多系统特定的资源.系统的主要资源包括CPU.RAM.磁盘I/O以及网络.过度使用这些资源的任何一种都会让系统陷入困境.不过,如果能登录到系统之中,可以借助大量工具确定问题 ...

  6. Docker CPU 资源限制——CPU分片功能测试

    之前的一篇随笔——Docker CPU 资源限制 中介绍了针对COU的某个或某几个核的控制,今天介绍下CPU分片功能,即CPU占比. 测试步骤 1.下载CPU测试image.agileek/cpuse ...

  7. Docker CPU 资源限制——CPU固定核功能测试

    Docker使用Linux cgroup来实现资源的限制,对于CPU的限制有两种方法: 1.cpuset CPU Set限定容器使用某个固定的CPU核.使用默认的libcontainer引擎时,可以通 ...

  8. SSD磁盘,CPU居高不下,高并发的情况下,是不是mysql解析器耗费的cpu资源高?

    你看看我做的实验,这个user表是300多W纪录,普通磁盘下,消耗时间最多的是Copy to tmp table 0.81秒,当然在ssd下,这个可以减少很多很多的,第二高就是sending data ...

  9. 内存和CPU资源控制

    数据库系统的资源是指内存和CPU(处理器)资源,拥有资源的多寡,决定了数据查询的性能.当一个SQL Server实例上,拥有多个独立的工作负载(workload)时,使用资源管理器(Resource ...

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

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

随机推荐

  1. Unity UGUI的Mask(遮罩)组件的介绍及使用

    Unity UGUI的Mask(遮罩)组件的介绍及使用 1. 什么是Mask组件? Mask(遮罩)组件是Unity UGUI中的一个重要组件,用于限制子对象的可见区域.通过设置遮罩组件,可以实现一些 ...

  2. SAP ABAP 使用GENIOS求解线性规划问题的简单例子

    主要内容来自Operations Research & ABAP ,结合我遇到的需求,做了一些修改. 需求:有BOX1和BOX2两种箱子,分别能包装不同数量的A物料和B物料,给出若干数量的A, ...

  3. 图解 Vue 响应式原理

    Vue 初始化 模板渲染 组件渲染 为了便于理解,本文将从以下两个方面进行探索: 从 Vue 初始化,到首次渲染生成 DOM 的流程. 从 Vue 数据修改,到页面更新 DOM 的流程. Vue 初始 ...

  4. 注意!JAVA中的值传递

    前言:今天在解决一个问题时,程序总是不能输出正确值,分析逻辑思路没问题后,发现原来是由于函数传递导致了这个情况. LeetCode 113 问题:给你二叉树的根节点root和一个整数目标和target ...

  5. js中的函数式编程

    函数是javascript中非常重要的一部分,用途也非常的多,可作为参数.返回值.回调等等,下面有一些函数式编程的重要概念和定义 纯函数 纯函数属于程序设计的名词,其它语言中也是存在的,而在javas ...

  6. 图解算法,原理逐步揭开「GitHub 热点速览」

    想必每个面过大厂的小伙伴都被考过算法,那么有没有更快了解算法的方式呢?这是一个老项目,hello-algo 用图解的方式让你了解运行原理.此外,SQL 闯关自学项目也是一个让你能好好掌握 SQL 技术 ...

  7. 为什么 API 治理需要内部倡导

    API 治理旨在帮助人们通过 API 实现最大价值.但是,只有了解 API 是什么以及 API 的重要性,并且认识到 API 治理是在帮助他们而不是监管他们,才能实现这一目标.这就是为什么在任何 AP ...

  8. 手把手教你使用人工智能生成游戏 3D 素材

    引言 生成式 AI 已成为游戏开发中艺术工作流的重要组成部分.然而,正如我在 之前的文章 中描述的,从文本到 3D 的实用性仍落后于 2D.不过,这种情况正在改变.本文我们将重新审视 3D 素材生成的 ...

  9. 三维模型OSGB格式轻量化技术在大规模场景的加载和渲染的作用分析

    三维模型OSGB格式轻量化技术在大规模场景的加载和渲染的作用分析 在移动设备上,大规模场景的加载和渲染是一个不容忽视的问题.对于OSGB格式轻量化处理来说,大规模场景的加载和渲染也是其中一项重要的任务 ...

  10. 浅析 GlusterFS 与 JuiceFS 的架构异同

    在进行分布式文件存储解决方案的选型时,GlusterFS 无疑是一个不可忽视的考虑对象.作为一款开源的软件定义分布式存储解决方案,GlusterFS 能够在单个集群中支持高达 PiB 级别的数据存储. ...