龙空技术网

docker容器空间不足

FinleyFu 515

前言:

目前小伙伴们对“mysql数据库空间不足”可能比较讲究,各位老铁们都需要分析一些“mysql数据库空间不足”的相关资讯。那么小编同时在网上搜集了一些有关“mysql数据库空间不足””的相关内容,希望我们能喜欢,你们一起来学习一下吧!

一、原因分析

话说我们很多时候为了方便部署都会使用docker容器来解决多次部署环境安装问题,最近在工作中碰到了docker的一个问题。

事故缘由:客户需要把4个G的文件导入到新部署的系统内部,而当我把文件打包到docker中,再执行程序调用sql的时候,问题出现了!

程序控制台报错 Mysql2::Error: Got error 28 from storage engine: SHOW FULL FIELDS FROM...

很明显是mysql临时空间不足,然后从页面访问整个系统,果不其然,同样的错误,既然如此,只能先查看问题原因了,首先想到的就是docker容器究竟分配了多大空间(整个容器最开始不是我部署的)。

进入docker中执行命令 df -h,可以看到只分配了10G大小,而部署应用和其他数据都已经占去了6G

,难怪会报错。

既然问题原因已经查出,那么就好办了,调整空间大小不就行了呗

二、Docker修改容器空间进入目录(根据自己安装目录调整)

 cd /dev/mapper/
查看容器是否正在运行
 docker ps -a
查看容器卷
 dmsetup table

其中绿色部分就是现在空间大小,单位为B,需要调整,红色部分需要记下,后续使用

使用ls命令查看文件夹是否存在(未在运行的docker容器不存在)修改空间大小

 echo 0 104857600 thin 253:7 11 | dmsetup load docker-253:0-916479-5650a67fc3264802217fe7aa6412d360c8cc11ff601764a0853d978d2962b063

我这里使用的104857600就是修改后的空间大小50G,计算公式:50*1024*1024*1024/512 然后执行命令

 dmsetup resume docker-253:0-916479-5650a67fc3264802217fe7aa6412d360c8cc11ff601764a0853d978d2962b063 resize2fs /dev/mapper/docker-253:0-916479-5650a67fc3264802217fe7aa6412d360c8cc11ff601764a0853d978d2962b063

到这里就修改完成了

进入docker查看下空间

OK,没问题,再把文件打包上去也不会报错了。

标签: #mysql数据库空间不足