zoukankan      html  css  js  c++  java
  • docker容器磁盘

    docker容器磁盘扩容

    一、配置文件里更改容器创建时的默认磁盘大小

    [root@ip-10-10-125-7 ~]# cat /etc/sysconfig/docker-storage
    DOCKER_STORAGE_OPTIONS="--storage-opt dm.loopdatasize=2000G -storage-opt dm.loopmetadatasize=10G --storage-opt dm.fs=ext4 --storage-opt dm.basesize=20G"
    参数:
    dm.loopdatasize=2000G是指存放数据的数据库空间为2t,默认是100g
    dm.loopmetadatasize=10G是存放Metadata数据空间为10g,默认是2g
    dm.fs=ext4是指容器磁盘分区为ext4
    dm.basesize=20G是指容器根分区默认为20g,默认是10g

    新版本dm字段有了改变:

    DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.loopdatasize=2000G --storage-opt dm.loopmetadatasize=10G --storage-opt dm.fs=ext4 --storage-opt dm.basesize=20G"

     二、容器的动态扩容脚本

    #!/bin/bash 
    #This script is dynamic modify docker container disk 
    #Author dong liu 
    if [ -z $1 ] || [ -z $2 ]; then
        echo "Usage: container_name increase_capacity"
        echo "Example: I want increase 11G to test"
        echo "The command is:  sh `basename $0` test 11"
        exit 1                                                                                                                    
    fi
    if [ `docker inspect $1 &>>/dev/null &&  echo 0 || echo 1` -eq 1 ];then
        echo "The container $1 is no exist!"
        exit 1 
    fi
    container_id=`docker inspect -f '{{ .Id }}' $1` 
    now_disk=`dmsetup table /dev/mapper/docker-*-$container_id|awk '{print $2}'` 
    disk=$(($2*1024*1024*1024/512)) 
    if [ $disk -lt $now_disk ];then
        echo "I can't shink container $1 from $(($now_disk*512/1024/1024/1024))G to ${2}G!I only modify contanier 
    
    increase disk!"
        exit 1 
    fi
    dmsetup table /dev/mapper/docker-*-$container_id|sed "s/0 [0-9]* thin/0 $disk thin/"|dmsetup load 
    
    /dev/mapper/docker-*-$container_id 
    dmsetup resume /dev/mapper/docker-*-$container_id 
    resize2fs /dev/mapper/docker-*-$container_id 
    if [ $? -eq 0 ];then
        echo "dynamic container $1 disk to ${2}G is success!"
    else
        echo "dynamic container $1 disk to ${2}G is fail!"
    Fi

     

  • 相关阅读:
    阿里云https证书Apache配置
    srvany.exe读取配置文件问题
    outlook检查姓名快捷键
    PHP ftp获取目录内容为空
    php 导出csv表格文件
    lnmp 多站点配置负载均衡
    rabbitmq集群方案
    如何让docker以daemon方式运行/bin/bash
    [mutt] Configure mutt to receive email via IMAP and send via SMTP
    linux邮件客户端mutt日志文件,发不出邮件
  • 原文地址:https://www.cnblogs.com/liuyansheng/p/6734553.html
Copyright © 2011-2022 走看看