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. Valine评论插件因为LeanCloud国内域名解析问题无法正常使用的解决方法

    近日,LeanCloud 国内域名解析存在问题,Valine评论插件的评论内容都储存在LeanCloud,使用Valine评论插件的个人博客的评论及阅读数会显示失败. 关于 LeanCloud 国内域 ...

  2. Go 语言 for-range 的两个坑,你踩过吗?

    坑一:迭代时协程引用索引和值 先看看下面的例子,你知道最终输出的结果是什么吗? package main import ( "fmt" "time" ) fun ...

  3. Composer 镜像原理 (3) —— 完结篇

    相关文章 Composer 镜像原理 (1) -- 初识 Composer Composer 镜像原理 (2) -- composer.json Composer 镜像原理 (3) -- 完结篇 上一 ...

  4. 2023-07-23:给你 n 个任务和 m 个工人 每个任务需要一定的力量值才能完成 需要的力量值保存在下标从 0 开始的整数数组 tasks 中 第 i 个任务需要 tasks[i] 的力量才能完

    2023-07-23:给你 n 个任务和 m 个工人 每个任务需要一定的力量值才能完成 需要的力量值保存在下标从 0 开始的整数数组 tasks 中 第 i 个任务需要 tasks[i] 的力量才能完 ...

  5. Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo

    前言   麒麟系统上做全球北斗定位终端开发,调试工具要做一个windows版本方便校对,北斗GPS发过来的是大地坐标,应用需要的是经纬度坐标,所以需要转换,可以使用公式转换,但是之前涉及到了另一个sh ...

  6. [python]使用faker库生成测试数据

    简介 Faker库可用于随机生成测试用的虚假数据. 可生成的数据参考底部的参考链接. 安装: python -m pip install faker 快速入门 from faker import Fa ...

  7. [pandas]从多个文件中构建dataframe

    按列从多个文件中构建 假设有两个csv文件,列不相同,需要整合为一个dataframe,使用glob模块: from glob import glob import pandas as pd # gl ...

  8. 2、搭建MyBatis

    2.1.开发环境 IDE:idea 2019.2 构建工具:maven 3.8.4 MySQL版本:MySQL 5.7 MyBatis版本:MyBatis 3.5.7 MySQL不同版本的注意事项 ( ...

  9. 使用DWS集群,用户被锁定如何解锁

    本文分享自华为云社区<[如何保证你的DWS数据更安全]使用DWS集群,用户被锁定如何解锁?>,作者:Shirley_Dou . 一.管理员用户被锁定,怎么破?gsql: FATAL: Th ...

  10. 在.NET Framework中使用RocketMQ(阿里云版)实战【第一章】

    章节 第一章:https://www.cnblogs.com/kimiliucn/p/17662052.html 第二章: 作者:西瓜程序猿 主页传送门:https://www.cnblogs.com ...