解决/var/lib/docker空间不足问题

今天跑过来加班,刚写好一个接口,准备启动服务测试的时候,结果报错启动不了。报错说是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把根目录挂载的磁盘全部写满了,类似下面这种
解决/var/lib/docker空间不足问题_第1张图片
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
解决/var/lib/docker空间不足问题_第2张图片
image-20201018143022117.png

9.重新启动所有容器后,确认无误。即可删除/var/lib/docker里面所有文件。

10.处理完毕后,执行

df -h
解决/var/lib/docker空间不足问题_第3张图片
image-20201018143336504.png

根目录和/root磁盘空间都处于一个相对理想状态。

你可能感兴趣的:(解决/var/lib/docker空间不足问题)