• docker容器磁盘限制


    一、磁盘驱动模式为devicemapper

    Docker从1.13版本开始默认磁盘驱动模式:overlay2,可以修改为Devicemapper模式,修改方法:

    cat /etc/sysconfig/docker-storage-setup
    将驱动模式修改为devicemapper模式: STORAGE_DRIVER
    =devicemapper

    1、新建容器磁盘资源限制

    可以指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件里通过dm.basesize参数指定,指定Docker容器rootfs容量大小为20G:

    vi /etc/sysconfig/docker-storage
    修改为如下代码:
    DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.basesize=20G"

    重启docker服务。

    启动一个容器后查看磁盘。

    2、容器启动后给在线扩容

    基于现有容器在线扩容,宿主机文件系统类型支持:ext2、ext3、ext4、不支持XFS。

    1)查看原容器的磁盘空间大小:

    2)查看mapper设备:

    3)查看卷信息表:

    4)根据要扩展的大小,计算需要多少扇区:

    第二个数字是设备的大小,表示有多少个512-bytes 的扇区. 这个值略高于 10GB 的大小。

    我们来计算一下一个 15GB 的卷需要多少扇区,

    $ echo $((15*1024*1024*1024/512)) 31457280

    修改卷信息表--激活--并且验证(红色3个部分)

    5)修改文件系统大小:

    6)最后验证磁盘大小:

     二、磁盘驱动模式为overlay2

    1、新建容器磁盘资源限制

    Docker容器默认启动的虚拟机,会占用宿主机的资源(CPU、内存、硬盘),例如默认Docker基于Overlay2驱动方式,容器硬盘的rootfs根分区空间是整个宿主机的空间大小。

    可以指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件:/etc/sysconfig/docker中,OPTIONS参数后面添加如下代码,指定Docker容器rootfs容量大小为20G:

    OPTIONS='--storage-opt overlay2.size=20G'

    以上方法只适用于新容器生成,并且修改后需要重启docker,无法做到动态给正在运行容器指定大小,如下图为默认容器大小:

    Overlay2 Docker磁盘驱动模式,如果要调整其大小,通过如上的方法,会导致Docker引擎服务无法启动

    如果配置以上方法限额,需要让Linux文件系统设置为xfs,并且支持目录级别的磁盘配额功能;

    CentOS7.x Xfs磁盘配额配置,

    新添加一块硬盘,设置磁盘配额方法步骤如下:

    1)添加新的硬盘如图所示:

    2)格式化硬盘为xfs文件系统格式,命令如下:

    mkfs.xfs -f /dev/sdb

    3)创建data目录,后续将作为docker数据目录:

    mkdir /data/ -p

    4)挂载data目录,并且开启磁盘配额功能(默认xfs支持配额功能);

    mount -o uquota,prjquota /dev/sdb /data/

    挂载配额类型如下:

    • 根据用户(uquota/usrquota/quota)

    • 根据组(gquota/grpquota) ;

    • 根据目录(pquota/prjquota)(不能与grpquota同时设定) 

    在已有文件系统下开启限额功能

    5)在docker配置文件:/etc/sysconfig/docker中,OPTIONS参数后面添加如下代码,指定Docker容器rootfs容量大小为20G

    --storage-opt overlay2.size=20G

    6)将docker引擎默认数据存储目录:/var/lib/docker重命名,并且将/data/docker目录软链接至/var/lib/下即可:

    mkdir -p /data/docker/
    cd /var/lib/
    mv docker docker.bak
    ln -s /data/docker/  .

    8)重启Docker服务,并且查看进程,可以看到docker overlay2.size大小配置,如图所示:

    9)基于Docker客户端指令启动Docker容器,并且查看最新容器的磁盘空间为10G,则设置容器大小成功,如图所示:

     查看配额-配置详情,命令如下:

    xfs_quota -x -c 'report' /data/

    可以通过命令xfs_quota设置来为用户和目录分配配额,也可以通过命令来查看配额信息:

    xfs_quota -x -c 'limit bsoft=10M bhard=10M jfedu' /data
    xfs_quota -x -c 'report' /data/

  • 相关阅读:
    线程同步
    毕业答辩
    论文查重
    shell无名管道线的实现(父子进程实现对管道的一端读另一端写)
    并查集
    操作系统中的fork()函数对应的进程创建过程
    柠檬水找零问题
    环形链表
    删除排序数组中的重复项
    关于两数之和的算法
  • 原文地址:https://www.cnblogs.com/deny/p/10084953.html
Copyright © 2020-2023  润新知