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修改空间大小的更多相关文章

  1. Linux查看磁盘空间大小命令

    Linux查看磁盘空间大小命令df -hldf -hl 查看磁盘剩余空间df -h 查看每个根路径的分区大小du -sh [目录名] 返回该目录的大小du -sm [文件夹] 返回该文件夹总M数du ...

  2. Linux 查看磁盘空间大小

    (1)查看文件大小 1. 查看当前文件夹下所有文件大小(包括子文件夹)    du -sh   2.查看var目录下文件大小   du -sh var   3.查看指定文件夹下所有文件大小(包括子文件 ...

  3. Linux查看磁盘空间大小

    1. Ubuntu 查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令格式: df -hl  显示格式为:  文件系统 容 ...

  4. Linux 查看修改SWAP大小

    1  查看swap 空间大小(总计):     # free -m          默认单位为k, -m 单位为M                total       used       fre ...

  5. [转帖] Linux 下面栈空间大小的实验

    比如局部变量是保存在栈空间中的,今天突然在想栈的上限是多大呢,什么时候才会栈溢出? ulimit 命令 linux下使用ulimit 命令可以查看系统的很多上限值. ulimit -a 查看所有 ul ...

  6. 查看linux目录剩余空间大小

    df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl   显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem S ...

  7. [Linux监控]磁盘空间大小

    echo 192.168.10.69>>ip.list ------------------------------------------- #!/bin/bash #注意if和[]之间 ...

  8. 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 ...

  9. linux增加swap空间的方法小结

    起因及背景 近期编译AOSP(android 10.0)是总是遇到内存溢出,查了半天,无果.猜测增加下swap空间大小是否能解决,随即尝试下,果然是如此. 当然,还有其他作法,比如直接增加主机的内存( ...

随机推荐

  1. python基础之模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合. 而对于一个复杂的功能来,可能需要多个函数 ...

  2. NSDateFormatter遇到无法转换的问题

    NSDateFormatter并不是万能的,并不是给出什么字符串都能转遍为NSDate类型,所转换的格式必须必须和你给出的格式想对应 比如说:NSString *dateStr = @"20 ...

  3. AC自动机及trie图 pascal

    ; type data=record sum,failed:longint; son:array ['a'..'z'] of longint; end; ..maxn] of data; que:.. ...

  4. 排球积分规则功能说明书(spec)

    排球规则: 由技术性规定.非技术性规定和场地设备要求等方面的内容组成的.每场比赛仍为五局三胜,前四局每局先得25分为胜,第五局先得15分者为胜.当出现24平或14平时,要继续比赛至领先2分才能取胜. ...

  5. pip 下载慢

    经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的 ...

  6. debug和release之间的时间优化问题

    最近跑了一个Vibe的代码,其中 加了一句向量的声明: vector<int> binary_delete1,binary_delete2,binary_delete3; 之后程序就会变得 ...

  7. Linux内核分析——分析system_call中断处理过程

    万子惠 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 我选择的是get ...

  8. ListView到顶部不可再拉

    ListView到顶部不可再拉,主要针对魅族.索爱等手机: 如果你的程序针对的是2.3及以上版本,可以直接调用AbsListView的setOverScrollMode方法来解决这个问题. 如果还要兼 ...

  9. PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变

    怎样才能在修改表的字段Name的时候,Code不自动跟着变 tools-> General   Options-> Dialog:Operation   Modes: 去掉 NameToC ...

  10. 使用Burpsuite抓取手机APP的HTTPS数据

    1.所需条件 · 手机已经获取root权限 · 手机已经成功安装xposed框架 · 电脑一台 2.详细步骤 2.1 在手机上面安装xposed JustTrustMe JustTrustMe是一个去 ...