您的位置:首页 > 运维架构 > Docker

docker高级应用之动态扩展容器空间大小

2015-07-08 15:21 609 查看
转载:http://dl528888.blog.51cto.com/2382721/1606170

docker容器默认的空间是10G,如果想指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件里通过dm.basesize参数指定,比如

是指定默认的大小为20G,具体参数可以参考https://github.com/docker/docker/tree/master/daemon/graphdriver/devmapper

上面方法只是真的生成容器的时候进行的,并且修改后需要重启docker,无法做到动态给运行容器指定大小,下面我介绍一下如何动态的扩展容器空间大小。

动态扩展的优点:

1、不需要修改docker配置,并且重启docker服务;

2、可以直接对运行中的容器进行动态扩展(只能增,无法缩);

缺点:

1、docker所在宿主机分区的格式必须是ext2、ext3、ext4;

2、docker存储引擎必须是devicemapper

存储引擎查看,可以使用docker info查看

从上面的Storage Driver可以看到我使用的引擎。

下面是动态扩展的例子:

1、新建立个test容器

可以看到我运行test容器的根分区是ext4分区,容器是10G

2、使用我的脚本动态扩展容器空间

脚本内容

目前给test容器进行动态增加20G空间

可以看到已经增加成功

下面在给test增加到50G

也可以增加成功

但我要是像缩减到30G

是无法进行缩减的,仅能进行增加操作。

至于动态增加的原理请参考http://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/

FAQ:

centos 7里使用docker的时候默认存储引擎是devicemapper

在进行动态调整docker容器磁盘空间的时候,出现

原因是resize2fs仅能支持ext2、ext3、ext4,不支持xfs

所以建议docker服务器的文件系统格式调整为ext4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: