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=0 seek=1000
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/metadata bs=1G count=0 seek=10
上面的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 0 88080384 thin 253:7 11 | dmsetup load docker-253:1-184549824-95f242e4fe2fef132ab1a706ebf8eecbb1c6db19547c3f12b34b76a5dee96c7e
这里的88080384会替换原20971520值,意思为:42GB。
计数公式为:42*1024*1024*1024/512
可以使用命令打印:
echo $((42*1024*1024*1024/512))
接着使用命令:
dmsetup resume docker-253:1-184549824-95f242e4fe2fef132ab1a706ebf8eecbb1c6db19547c3f12b34b76a5dee96c7e
resize2fs /dev/mapper/docker-253:1-184549824-95f242e4fe2fef132ab1a706ebf8eecbb1c6db19547c3f12b34b76a5dee96c7e
完成。
然后进入容器的终端,使用命令df -h即可看到修改后的容器空间:
写了个shell脚本,用于修改池、容器空间使用:
1、resize_docker.sh
#!/bin/bash
DATA_SIZE=$1
METADATA_SIZE=$2
if [ "$DATA_SIZE" = "" ]; then
DATA_SIZE=1000
fi
if [ "$METADATA_SIZE" = "" ]; then
METADATA_SIZE=10
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=0 seek=$DATA_SIZE
# Resize docker metadata space
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/metadata bs=1G count=0 seek=$METADATA_SIZE
# Start docker service
systemctl start docker
运行脚本方法:
sh resize_docker.sh 1000 10
将会把docker的池修改为data=1TB,metadata=10GB
2、resize_container.sh
#!/bin/bash
CID=$1
SIZE=$2
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 100
将容器459fd505311ad364309940ac24dcdb2bdfc68e3c3b0f291c9153fb54fbd46771的空间修改为100GB
注:修改空间,必需是在docker的daemon模式下进行。
参考文献:
(adsbygoogle = window.adsbygoogle || []).push({});
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一文读懂 DEX 文件格式解析
- Guava集合--新集合类型
- 从 Node.js 到 Go
- 性能不达标,计将安出?
- Yaml 速成查询表
- 设计模式实战-策略模式,想让你的代码变幻莫测吗?
- 设计模式实战-模板模式,代码复用神器
- CSS Flexbox 布局完全指南 (二):3000字,多示例讲解
- 设计模式实战-访问者模式,减少代码体积
- Spring Security 实战干货:UsernamePasswordAuthenticationFilter 源码分析
- 打卡群刷题总结0715——旋转链表
- 设计模式实战-中介模式,为你牵桥搭线
- 设计模式实战-迭代器模式,最常用的设计模式之一
- 设计模式实战-解释器模式,今天给你解疑答惑
- 时间不再浪费评估上!ThingJS 3D可视化开发不用愁