hans

hans

【Docker】增加Docker容器的容量


一般 Docker 容器默认大小是 10G, 如果 run 的时候忘记指定大小。或者在使用过程中发现不够用了。可以通过下面方法解决.

我先把 run 指定大小的命令放出来

sudo docker -d --storage-opt dm.basesize=100G

然后是在容器内查看容器容量的命令:

df -hT

最上面第一行就是了.

这里要 注意分区容器的格式一定是 ext4 !!!!
还要查看 容器引擎一定要是 devicemapper !!!!!

查看引擎命令:

sudo docker info

看 Storage Driver

下面是我从别处找来的脚本,只可以给容器扩容,但不能缩小容器的容量.

#!/bin/bash 
#This script is dynamic modify docker container disk 
#Author Deng Lei 
passward=xxxxxxxxxxx
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 [ `echo $passward | sudo -S docker inspect $1 &>>/dev/null &&  echo 0 || echo 1` -eq 1 ];then
    echo "The container $1 is no exist!"
    exit 1
fi
container_id=`echo $passward | sudo -S docker inspect -f '{{ .Id }}' $1`
now_disk=`echo $passward | sudo -S 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
echo $passward | sudo -S dmsetup table /dev/mapper/docker-*-$container_id|sed "s/0 [0-9]* thin/0 $disk thin/"|dmsetup load /dev/mapper/docker-*-$container_id
echo $passward | sudo -S dmsetup resume /dev/mapper/docker-*-$container_id
echo $passward | sudo -S 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

注意 passeard 后面的 xxxx 是你执行 sudo 要输入的密码.

执行这个脚本的命令是:

sudo sh ResizeMem.sh name xx

上面 name 是容器名,一定是容器名哦,不能是容器 ID 什么的.

后面的 xx 是你要扩充到多少 G 的容量。想扩充到 100G 就写 100.

最后再去容器内查一下容量,会发现成功搞定~~

不容重启容器的哦~~~

上面代码参考自: http://www.linuxidc.com/Linux/2015-01/112245.htm

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.