[Linux] -Docker修改空间大小
Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小。
池空间大小默认为:100G
容器空间大小默认为是:10G
所以修改空间大小也分为两个:
这里使用centos下的yum进行安装的Docker。
首先,修改空间大小,必需使Docker运行在daemon环境下,即先停止正在运行的docker服务:
service docker stop
然后使用命令使用daemon环境下运行docker:
docker -d
一、修改池空间大小方法:
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1G count= seek=
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/metadata bs=1G count= seek=
上面的1000为1TB大小,即为数据池空间大小为1TB,而10则为Metadata的空间大小,10GB
从运行完后,使用命令查看docker池空间大小:
docker info

可以看到池空间已经被设置为data=1TB和metadata=10GB
二、修改容器空间大小:
1、首先先进入目录(使用yum安装docker的默认目录):
cd /dev/mapper/
2、使用命令查看容器是否正在运行。
docker ps -a

这里可以看到容器test正在运行。
3、使用命令查看容器卷:
dmsetup table

可以看到20971520,这个是卷空间值,我们需要修改的就是这里。
其它的值要记下:253:7 11
4、使用ls或ll命令查看在/dev/mapper/目录下的文件是否存在。(这步很重要,因为非正在运行的Container是不会有这个文件的)

5、使用命令修改容器空间大小:
echo thin : | dmsetup load docker-:--95f242e4fe2fef132ab1a706ebf8eecbb1c6db19547c3f12b34b76a5dee96c7e
这里的88080384会替换原20971520值,意思为:42GB。
计数公式为:42*1024*1024*1024/512
可以使用命令打印:
echo $((***/))

接着使用命令:
dmsetup resume docker-:--95f242e4fe2fef132ab1a706ebf8eecbb1c6db19547c3f12b34b76a5dee96c7e
resize2fs /dev/mapper/docker-:--95f242e4fe2fef132ab1a706ebf8eecbb1c6db19547c3f12b34b76a5dee96c7e

完成。
然后进入容器的终端,使用命令df -h即可看到修改后的容器空间:

写了个shell脚本,用于修改池、容器空间使用:
1、resize_docker.sh
#!/bin/bash DATA_SIZE=$
METADATA_SIZE=$ if [ "$DATA_SIZE" = "" ]; then
DATA_SIZE=
fi if [ "$METADATA_SIZE" = "" ]; then
METADATA_SIZE=
fi # Stop docker service
systemctl stop docker # Resize docker data space
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1G count= seek=$DATA_SIZE # Resize docker metadata space
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/metadata bs=1G count= seek=$METADATA_SIZE # Start docker service
systemctl start docker
运行脚本方法:
sh resize_docker.sh
将会把docker的池修改为data=1TB,metadata=10GB
2、resize_container.sh
#!/bin/bash CID=$
SIZE=$ if [ "$CID" != "" ] && [ "$SIZE" != "" ]; then
DEV=$(basename $(echo /dev/mapper/docker-*-$CID));
dmsetup table $DEV | sed "s/0 [0-9]* thin/0 $(($SIZE*1024*1024*1024/512)) thin/" | dmsetup load $DEV;
dmsetup resume $DEV;
resize2fs /dev/mapper/$DEV;
echo "Resize $CID completed."
else
echo "Usage: sh resize_container 459fd505311ad364309940ac24dcdb2bdfc68e3c3b0f291c9153fb54fbd46771 100";
fi
运行脚本方法:
sh resize_container.sh 459fd505311ad364309940ac24dcdb2bdfc68e3c3b0f291c9153fb54fbd46771
将容器459fd505311ad364309940ac24dcdb2bdfc68e3c3b0f291c9153fb54fbd46771的空间修改为100GB
注:修改空间,必需是在docker的daemon模式下进行。
参考文献:
http://segmentfault.com/a/1190000002931564
[Linux] -Docker修改空间大小的更多相关文章
- Linux查看磁盘空间大小命令
Linux查看磁盘空间大小命令df -hldf -hl 查看磁盘剩余空间df -h 查看每个根路径的分区大小du -sh [目录名] 返回该目录的大小du -sm [文件夹] 返回该文件夹总M数du ...
- Linux 查看磁盘空间大小
(1)查看文件大小 1. 查看当前文件夹下所有文件大小(包括子文件夹) du -sh 2.查看var目录下文件大小 du -sh var 3.查看指定文件夹下所有文件大小(包括子文件 ...
- Linux查看磁盘空间大小
1. Ubuntu 查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令格式: df -hl 显示格式为: 文件系统 容 ...
- Linux 查看修改SWAP大小
1 查看swap 空间大小(总计): # free -m 默认单位为k, -m 单位为M total used fre ...
- [转帖] Linux 下面栈空间大小的实验
比如局部变量是保存在栈空间中的,今天突然在想栈的上限是多大呢,什么时候才会栈溢出? ulimit 命令 linux下使用ulimit 命令可以查看系统的很多上限值. ulimit -a 查看所有 ul ...
- 查看linux目录剩余空间大小
df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem S ...
- [Linux监控]磁盘空间大小
echo 192.168.10.69>>ip.list ------------------------------------------- #!/bin/bash #注意if和[]之间 ...
- Linux增加swap空间大小解决编译错误collect2:ld terminated with signal 9(或11)
编译llvm的时候:collect2:ld terminated with signal 9(或11) 1 Creating a file for 1024 MB size you want: We ...
- linux增加swap空间的方法小结
起因及背景 近期编译AOSP(android 10.0)是总是遇到内存溢出,查了半天,无果.猜测增加下swap空间大小是否能解决,随即尝试下,果然是如此. 当然,还有其他作法,比如直接增加主机的内存( ...
随机推荐
- Enable rsh on MAC OS with command line
1. Enable rsh on macos. 1). os version (10.0) Enabling the "Allow remote login" option tur ...
- android layout_weight讲解
Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性. 1.当控件的属性android:layout_width=&qu ...
- angular ng-if scope权限问题
今天在一个ng-if处理的div中处理一个scope,我一开始想要打印这个选中的值,但是一直打印的是为undefined,找了一会,原来是ng-if这个指令单独开了一个作用域,它只可以继承,不可以进行 ...
- 在Eclipse中对自动封装的设定颜色
在Eclipse中,对自动封装进行特别着色提醒的方法:windows-->Preference-->java-->Editor-->Syntax Coloring-->j ...
- 信号量与PV操作
在计算机操作系统中,PV操作是进程管理中的难点.首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的 ...
- C#常用操作类库四(File操作类)
public class FileHelper : IDisposable { private bool _alreadyDispose = false; #region 构造函数 public Fi ...
- Win10/UWP开发—使用Cortana语音指令与App的前台交互
Win10开发中最具有系统特色的功能点绝对少不了集成Cortana语音指令,其实Cortana语音指令在以前的wp8/8.1时就已经存在了,发展到了Win10,Cortana最明显的进步就是开始支持调 ...
- formValidator 表单验证
作为一名程序员,在解决工作中遇到问题之后,做一些总结是有必要的,既方便总结温习相关知识点,也为广大的程序员提供了一些工作经历,给予同行一面明鉴. 首先,众所周知的,我们需要引用js类库: eg:< ...
- 鼠标焦点变化引起mouseout事件
做了个小手术,渐渐回归网络啦! 问题: 在自制的提示离鼠标太近时,会引起无法提示的功能. 自制提示离图片太近时,提示图片一直一闪一闪的,截图截不出来,就只放改善后的图片(不闪). 原因: 为什么呢?书 ...
- MySQL分布式集群之MyCAT(转)
原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...