竹子开花的时 发表于 2018-5-29 08:45:01

动态增加docker系统空间

  docker缺省是10G,可以动态增加docker空间,但是要查一下
  1.docker所在宿主机分区的格式必须是ext2、ext3、ext4;
  2.docke版本:
  # docker info
  Containers: 23
  Images: 54
  Storage Driver: devicemapper
  Pool Name: docker-253:0-1966841-pool
  Pool Blocksize: 65.54 kB
  Backing Filesystem: extfs
  Data file: /dev/loop0
  Metadata file: /dev/loop1
  Data Space Used: 3.287 GB
  Data Space Total: 107.4 GB
  Data Space Available: 77.71 GB
  Metadata Space Used: 5.014 MB
  Metadata Space Total: 2.147 GB
  Metadata Space Available: 2.142 GB
  Udev Sync Supported: true
  Deferred Removal Enabled: false
  Data loop file: /var/lib/docker/devicemapper/devicemapper/data
  Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
  Library Version: 1.02.95-RHEL6 (2015-09-08)
  Execution Driver: native-0.2
  Logging Driver: json-file
  Kernel Version: 2.6.32-573.7.1.el6.x86_64
  Operating System: <unknown>
  CPUs: 2
  Total Memory: 3.744 GiB
  Name: redhat6test1
  ID: Z3PB:DAZJ:ZTYU:TRYE:LXR3:4KXS:7HMI:2BK6:B4JW:I7XA:ADNJ:NUTL
  满足条件后,可以使用动态脚本:
#This script is dynamic modify docker container disk
#Author Deng Lei
if [ -z $1 ] || [ -z $2 ]; then
    echo "Usage: container_name increase_capacity"
    echo "Example: I want increase 11G to centos-sshd-test2"
    echo "The command is:sh `basename $0` centos-sshd-test211"
    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 * 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
#./modify_disk_dynamic.sh centos-sshd-test2 50   给centos-sshd-test2增加50G空间  
页: [1]
查看完整版本: 动态增加docker系统空间