一般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.
最后再去容器内查一下容量, 会发现成功搞定~~
不容重启容器的哦~~~