美文网首页
解决/var/lib/docker空间不足问题

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

作者: 梦想实现家_Z | 来源:发表于2020-10-18 14:39 被阅读0次

    今天跑过来加班,刚写好一个接口,准备启动服务测试的时候,结果报错启动不了。报错说是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磁盘空间都处于一个相对理想状态。

    相关文章

      网友评论

          本文标题:解决/var/lib/docker空间不足问题

          本文链接:https://www.haomeiwen.com/subject/lllcmktx.html