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. 即构自研海量有序数据网络MSDN,构建全球可靠的多云通讯链路

    2020是实时音视频技术应用大爆发的一年,电商直播.视频会议.在线课堂等多个场景获得了广泛关注.即构科技作为全球领先的云通讯商,截止目前已服务超过4000家企业客户,每日音视频通话时长超过20亿分钟, ...

  2. 三级缓存---解决 Spring 循环依赖

    1. 循环依赖 1.1 什么是循环依赖 首先,什么是循环依赖?这个其实好理解,就是两个 Bean 互相依赖,类似下面这样: """ @Service public cla ...

  3. Jenkins主从架构的实现

    一.概要 提到K8S环境下的CI/CD,可以使用的工具有很多,比如Jenkins.Gitlab CI.新兴的drone等,考虑到大多公司在VM环境下都采用 Jenkins 集群来搭建符合需求的 CI/ ...

  4. Centos7下Oracle启动命令

    1.查询挂载历史记录 在root账户下使用一下命令 查看历史使用挂载的那个磁盘 # 查看挂载历史命令 history | grep mount # 调用挂载历史命令,主要是为了找到挂载Oracle的磁 ...

  5. MAUI Blazor 加载本地图片的解决方案

    前言 为了解决MAUI Blazor无法加载本地图片,https://github.com/dotnet/maui/issues/2907,所以写了这篇文章. 有token大佬珠玉在前,https:/ ...

  6. Blazor提取出Razor类库,没有css的class的智能提示

    最开始从stackoverflow上找到了答案,有两种办法,但都不太理想 后来自己找了新的办法,其实很简单,把要用的css复制到Razor类库的wwwroot文件夹中,默认是不会复制到引用Razor类 ...

  7. Django: 'block' tag with name 'header' appears more than once

    错误原因 在同一文件中,重复引用标签多次 解决方案: 删掉重复的标签即可.

  8. C# 多线程访问之 SemaphoreSlim(信号量)【进阶篇】

    SemaphoreSlim 是对可同时访问某一共享资源或资源池的线程数加以限制的 Semaphore 的轻量替代,也可在等待时间预计很短的情况下用于在单个进程内等待. 由于 SemaphoreSlim ...

  9. 【Leaflet入门篇】 Leaflet快速入门

    0 前言 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库. 它大小仅仅只有 42 KB of JS, 并且拥有绝大部分开发者所需要的所有地图特性 .Leaflet 简 ...

  10. 使用 VirtualBox+Vagrant 创建 CentOS7 虚拟机

    一.准备工作 1.1 软件下载 VirtualBox:Downloads – Oracle VM VirtualBox Vagrant:Install | Vagrant | HashiCorp De ...