本方式在ubuntu14.04上运行正常,ubuntu16.04上运行失败
Docker的文件系统必须是devicemapper,而且只支持扩容不支持缩小
方法引自:http://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/
1.查看/dev/mapper下文件
$ ls /dev/mapper
control docker-253:1-131179-a835d492b6864a13eb11eddd17c3cabf5226f20bc01fbfe90964d80112a0df69 docker-253:1-131179-pool
记下docker-253:1-131179-a835d49...这个文件的名字,这个是容器存储文件的文件名
2.使用dmsetup查看该文件扇区信息
$ dmsetup table docker-253:1-131179-a835d492b6864a13eb11eddd17c3cabf5226f20bc01fbfe90964d80112a0df69
0 20971520 thin 252:0 9
3.计算所需扇区数目,如,20G。
20*1024*1024*1024/512=41943040
4.将新的扇区大小写入,注意只是改变20971520的数字,其他数字不变
echo 0 41943040 thin 252:0 9 | dmsetup load docker-253:1-131179-a835d492b6864a13eb11eddd17c3cabf5226f20bc01fbfe90964d80112a0df69
5.将修改后的容器文件激活
dmsetup resume docker-253:1-131179-a835d492b6864a13eb11eddd17c3cabf5226f20bc01fbfe90964d80112a0df69
6.重新查看文件信息
$ dmsetup table docker-253:1-131179-a835d492b6864a13eb11eddd17c3cabf5226f20bc01fbfe90964d80112a0df69
0 41943040 thin 252:0 9
7.更改文件系统大小,使变更生效
resize2fs /dev/mapper/docker-253:1-131179-a835d492b6864a13eb11eddd17c3cabf5226f20bc01fbfe90964d80112a0df69
该命令在ubuntu16.04下可能出现文件正在使用或者找不到超级块的错误。还未解决。