zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    BF算法和KMP算法
    Python课程笔记 (五)
    0268. Missing Number (E)
    0009. Palindrome Number (E)
    0008. String to Integer (atoi) (M)
    0213. House Robber II (M)
    0198. House Robber (E)
    0187. Repeated DNA Sequences (M)
    0007. Reverse Integer (E)
    0006. ZigZag Conversion (M)
  • 原文地址:https://www.cnblogs.com/deny/p/10084953.html
Copyright © 2011-2022 走看看