Docker在启动容器的时候,需要创建文件系统,为rootfs提供挂载点。最初Docker仅能在支持Aufs文件系统的Linux发行版上运行,但是由于Aufs未能加入Linux内核,为了寻求兼容性、扩展性,Docker在内部通过graphdriver机制这种可扩展的方式来实现对不同文件系统的支持。

目前,Docker支持Aufs,Devicemapper,Btrfs和Vfs四种文件系统,docker容器默认的空间是10G,如果想指定默认容器的大小(在启动容器的时候指定),可以有如下两种方法:

建议大家在CentOS7.x上部署Docker进行测试(内核在3.10+)

1)第一种方法:

可以在docker配置文件里通过dm.basesize参数指定,例如:

docker   -d  --storage-optdm.basesize=40G 

(注意*在CentOS 6.5上有可能执行该命令扩容不成功)

以上方法只适用于新容器生成,并且修改后需要重启docker,无法做到动态给正在运行容器指定大小。(如下图为默认容器大小)

Docker虚拟化技术系列之-磁盘扩容_第1张图片

在文件加入如下语句即可:vi /etc/sysconfig/docker-storage

Docker虚拟化技术系列之-磁盘扩容_第2张图片

然后重启docker即可;

Docker虚拟化技术系列之-磁盘扩容_第3张图片

然后重新创建即可。

2)第二种方法:

(注意*如果是centos6.x系列,内核不稳定,会导致docker容器停止,无法再启动)

1)查看原容器的磁盘空间大小

Docker虚拟化技术系列之-磁盘扩容_第4张图片

2)查看mapper设备:

Docker虚拟化技术系列之-磁盘扩容_第5张图片

3) 查看卷信息表:

Docker虚拟化技术系列之-磁盘扩容_第6张图片

4) 根据要扩展的大小,计算需要多少扇区:

第二个数字是设备的大小,表示有多少个512-bytes 的扇区. 这个值略高于 10GB 的大小。我们来计算一下一个 15GB 的卷需要多少扇区,

$ echo $((15*1024*1024*1024/512))31457280

5)  修改卷信息表--激活--并且验证(红色3个部分)

Docker虚拟化技术系列之-磁盘扩容_第7张图片

6)  修改文件系统大小

Docker虚拟化技术系列之-磁盘扩容_第8张图片

7)  最后验证磁盘空间大小

Docker虚拟化技术系列之-磁盘扩容_第9张图片