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

docker -d --storage-opt dm.basesize=20G 是指定默认的大小为 20G

动态扩展的优点:

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

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

缺点:

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

2、docker 存储引擎必须是 devicemapper

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

使用:df -hT  查看系统的根分区是哪种格式分区

dynamic_modify_docker_disk.sh 动态扩展容器脚本内容:

#!/bin/bash
#This script is dynamic modify docker container disk if [ -z $ ] || [ -z $ ]; 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
fi
if [ `docker inspect $ &>>/dev/null && echo || echo ` -eq ];then
echo "The container $1 is no exist!"
exit
fi
container_id=`docker inspect -f '{{ .Id }}' $`
now_disk=`dmsetup table /dev/mapper/docker-*-$container_id|awk '{print $2}'`
disk=$(($***/))
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
fi
dmsetup table /dev/mapper/docker-*-$container_id|sed "s/0 [0-9]* thin/0 $disk thin/"|dmsetup load /dev/mapper/docker-*-$container_id
dmsetup resume /dev/mapper/docker-*-$container_id
resize2fs /dev/mapper/docker-*-$container_id
if [ $? -eq ];then
echo "dynamic container $1 disk to ${2}G is success!"
else
echo "dynamic container $1 disk to ${2}G is fail!"
fi

sh dynamic_modify_docker_disk.sh

使用方法直接执行脚本即可,有帮助说明

FAQ:

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

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

resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Device or resource busy while trying to open /dev/mapper/docker

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

所以建议 docker 服务器的文件系统格式调整为 ext4

源站:http://dl528888.blog.51cto.com/2382721/1606170

最新文章

  1. 机器学习实战-python相关软件库的安装
  2. Apache2 同源策略解决方案 - 配置 CORS
  3. sql server 对象资源管理器(一)
  4. this的使用方法
  5. winform中的时间轴控件
  6. get started with laravel
  7. OC与Swift的区别四(条件语句)
  8. Python爬虫实战(二)
  9. 用SQL脚本移除视图中存在的机器名
  10. 基于visual Studio2013解决C语言竞赛题之1027 YN
  11. One take,可望而不可即
  12. vue报错信息
  13. C++程序设计方法3:类中的静态成员
  14. tiny6410 uboot启动参数的问题
  15. sql 50题
  16. IAR 路径导致的错误
  17. java-方法重写的注意事项
  18. 读书笔记——spring cloud 中 HystrixCommand的四种执行方式简述
  19. Java线程(十一):Fork/Join-Java并行计算框架
  20. List 去重对象

热门文章

  1. python中变量、函数、类名、模块名等命名方式
  2. 如何命名Java变量
  3. react组件选项卡demo
  4. 通过 MySQL 存储原理来分析排序和锁(转)
  5. [转帖]SAP一句话入门:Sales and Distribution
  6. IIS 使用 HTTP重定向 修改 默认主页
  7. 重启iis命令
  8. 剑指offer(18)二叉搜索树的后续遍历
  9. mongodb的安装方法
  10. Object.defineProperties()与Proxy对象代理