docker硬盘扩容脚本

#!/bin/bash
#This script is dynamic modify docker container disk

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 [ docker inspect $1 &>>/dev/null && echo 0 || echo 1 -eq 1 ];then
echo "The container $1 is no exist!"
exit 1
fi
#container_id=docker inspect -f ‘{{ .Id }}‘ $1
container_id=docker inspect $1 | grep DeviceName | awk -F ‘"‘ ‘{print $4}‘
now_disk=dmsetup table /dev/mapper/$container_id|awk ‘{print $2}‘
disk=$(($2102410241024/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
dmsetup table /dev/mapper/$container_id|sed "s/0 [0-9]* thin/0 $disk thin/"|dmsetup load /dev/mapper/$container_id
dmsetup resume /dev/mapper/$container_id
xfs_growfs /dev/mapper/$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

原文地址:http://blog.51cto.com/8561563/2149055

时间: 2024-10-02 20:42:29

docker硬盘扩容脚本的相关文章

Docker 存储池扩容

Docker 存储池扩容 如果在 CentOS . REHL . Fedor 或者其他默认没有 AUFS 支持的 Linux 发行版上使用 Docker ,你可能需要用到 Device Mapper 的存储插件.将这个插件设置为默认,它会把你所有的容器存储到一个 100G 的简短文件中,并且限制每个容器最大为 10GB .这篇文章将展示如何突破这个限制,并且把容器的存储移动到一个指定的分区或者 LVM 卷中.它的工作原理 要真正理解我们要做的事情,首先来了解 Device Mapper 插件的工

7.EVE-NG硬盘扩容,存储海量镜像

文章列表(关注微信公众号EmulatedLab,及时获取文章以及下载链接) 1.EVE-NG介绍(EVE-NG最好用的模拟器,仿真环境时代来临!) 2.EVE-NG安装过程介绍 3.EVE-NG导入Dynamips和IOL 4.EVE-NG导入QEMU镜像 5.EVE-NG关联SecureCRT,VNC,Wireshark 6.EVE-NG网卡桥接,带您走进更高级的实验 7.EVE-NG硬盘扩容,存储海量镜像 8.EVE-NG定制个人镜像,脚本快速导入 9.EVE-NG容纳H3C.Huawei,

给EXSI虚拟机中linux硬盘扩容

给EXSI虚拟机中linux硬盘扩容 post by rocdk890 / 2015-5-18 14:45 Monday linux技术 发表评论 今天公司同事过来给我说要求把公司的exsi服务器上的一台虚拟机硬盘扩大,好吧,连上exsi后,直接在原来的硬盘40G上加了20G,等我添加完后,同事才告诉我那台是linux的系统,好吧,只能连上ssh来更改了.下面就是我用另外一台虚拟机来做的实验.   系统:centos 5.x1.exsi扩容图扩容前:扩容后:2.分区前准备yum -y insta

VMware内CentOS7虚拟机硬盘扩容

VMware内CentOS7虚拟机硬盘扩容 2017年09月06日 22:20:57 阅读数:2408 简介 CentOS7虚拟机原硬盘空间只分配了10GB,需要扩容到20GB. 环境:VMware 10 VMware分配空间 选中虚拟机->虚拟机设置->硬盘->实用工具->扩展->设置最大磁盘大小->点击扩展  CentOS7内部分配 可以参考:http://jingyan.baidu.com/article/54b6b9c0fc8b0b2d583b47c6.html

docker 容积硬盘扩容小坑一个

随 有个容器磁盘容量不够需要扩容 谷歌了下方案 http://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/ http://dl528888.blog.51cto.com/2382721/1606170 相同原理 试了一下 果然如 http://dl528888.blog.51cto.com/2382721/1606170 下面有人留言一样 扩容成功,但是重启就报错 谷歌了一下也没解决方案 试了各种办法试出来了.解决方案 e2

阿里云部署Docker(9)----Dockerfile脚本定制镜像

本文为原创文章,转载需注明转自:http://blog.csdn.net/minimicall?viewmode=contents 技术爱好者都是比较懒的.而docker又是开发者支持起来的.所以,它肯定是有比较懒的方式供我们定制自己需要的东西. docker build docker 用build指令来执行dockerfile脚本. 具体的用法: [java] view plaincopy sudo docker build . 小心后面那个点,表示当前目录.当前目录有一个Dockerfile

【LVM】LVM自动扩容脚本

当新增物理磁盘时,自动扩容到:/dev/vg0/data 例如,如下是原始的: [[email protected] ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb vg0 lvm2 a-- 10.00g 0 /dev/sdc vg0 lvm2 a-- 10.00g 0 [[email protected] ~]# vgs VG #PV #LV #SN Attr VSize VFree vg0 2 1 0 wz--n- 19.98g 0 [[email p

阿里云部署Docker(9)----Dockerfile脚本定制你的镜像

本文为原创文章,转载需注明转自:http://blog.csdn.net/minimicall?viewmode=contents 技术爱好者都是比较懒的.而docker又是开发者支持起来的.所以,它肯定是有比较懒的方式供我们定制自己需要的东西. docker build docker 用build指令来执行dockerfile脚本. 具体的用法: sudo docker build . 小心后面那个点,表示当前目录.当前目录有一个Dockerfile的文件. 当然,你可以指定你建立的镜像的名字

docker停机扩容pool空间

我这里使用docker的容器做测试机给开发使用,使用都没问题,但随着项目增加,有的项目需要更大的硬盘,我通过(http://dl528888.blog.51cto.com/2382721/1606170)来动态扩展容器的空间,满足使用需求,但我当前设置的docker pool却不足了(默认pool是100g,每个容器给予10g空间),如果pool满了就无法新创建容器,并且无法删除数据来清理(我使用dd来测试),所以为了解决此问题,我准备: 1.备份当前容器与images: 2.停止docker服