今天跑过来加班,刚写好一个接口,准备启动服务测试的时候,结果报错启动不了。报错说是redis服务no space left on device
(redis是测试环境,使用docker管理。
1.进测试服务器中,使用
docker logs --tail="200" ${实例id}
命令查看redis终端日志,结果依然是打印了一堆no space left on device
,无果,没有定位到任何问题点。
2.既然是磁盘空间不够,那么使用
df -h
查看一下所有挂载的磁盘空间使用情况。
发现/var/lib/docker/overlay2把根目录挂载的磁盘全部写满了,类似下面这种 image-20201018141737092.png也就是说,/var/lib/docker这个路径下的文件把咱们的根目录写满了。定位到了问题点。
那么咱们就可以开始制定对应的解决方案了。
首先,咱们看到根目录下的Size是16G,明显是不能继续支撑后续服务运行的,而且还会影响操作系统的运行。/root挂载的磁盘还有很大的余量,63G足够保障docker服务的后续增长。那么就决定把/var/lib/docker挪到/root下面。
3.停止docker服务
systemctl stop docker
4.创建新的docker工作目录
mkdir -p /root/dockerlib
这个目录可以自定义,但是一定要保证在/root里面
5.迁移/var/lib/docker
rsync -avz /var/lib/docker /root/dockerlib/
6.配置devicemapper.conf
# 不存在就创建
sudo mkdir -p /etc/systemd/system/docker.service.d/
# 不存在就创建
sudo vi /etc/systemd/system/docker.service.d/devicemapper.conf
在文件中添加
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/root/dockerlib
7.重启docker服务
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
8.确认是否配置成功
docker info
image-20201018143022117.png
9.重新启动所有容器后,确认无误。即可删除/var/lib/docker里面所有文件。
10.处理完毕后,执行
df -h
image-20201018143336504.png
根目录和/root磁盘空间都处于一个相对理想状态。
网友评论