美文网首页
docker 存储导致 /dev/sdb2磁盘溢满

docker 存储导致 /dev/sdb2磁盘溢满

作者: 喻春来 | 来源:发表于2021-08-04 14:51 被阅读0次

    linux 系统报错: cannot create temp file for here-document: No space left on device,显然是磁盘完全占用,无剩余

    方法:

    首先,查看磁盘的使用情况的,命令:df -h, /dev/sdb2 作为我服务器默认根目录所在,最重要的是默认系统软件安装,安装了许多包,/dev/sdb2磁盘爆满


    然后, 查看/dev/sdb2磁盘内不同文件夹具体占用情况,命令:du -sh ./*,其中./var占用最大,同理进入/var目录下进一步查看,./lib占用最大,/var/lib目录是系统默认包安装地址,发现其下的docker占用磁盘317G;

    原因:随着docker image 和container的增多,导致磁盘过度占用;

    最简单的解决方法:将 dcoker 存储目录转移到其他空余磁盘

    首先:暂停docker服务:sudo systermctl stop docekr.service

    然后:转移docker 存储,并在/va/lib/目录创建对应软链接:

    sudo mv /var/lib/docker /mnt/

    cd /var/lib; sudo ln -st /mnt/docker dokcer

    /va/lib/目录需要创建链接原因:docker 的默认存储路径(Docker Root Dir)在/var/lib/docker ,原来的创建的images和containers的配置文件需要在/var/lib/docker下查找,故转移/var/lib/docker之后,必须将对应的转移文件地址参数传递给系统,否则无法查找到之前创建的images和containers,不能有效加载到docker环境;

    最后:重新启动docker服务

    sudo systermctl daemon-reload # 重新加载系统变量,主要是/var/lib/docker-->/mnt/docker链接的加载

    sudo systermctl start docker.service # 重启

    经验小结:

    没有创建链接前,我将docker的配置文件中的存储目录修改为/mnt/docker ,虽然docker运行了,但是docker之间创建的images和containers都未能加载到环境中蹦年使用,添加了软链接之后,就可以全部加载原来的images和containers,之后我将docker系统配置又修改回去了,有了/var/lib/docker指向/mnt/docker的系统链接之后,不再需要修改docker的任何配置文件了;

    ubuntu18.04 docker配置文件: /etc/systemd/system/multi-user.target.wants/docker.service

    参考博文:

    https://blog.csdn.net/zb408832388/article/details/103481443

    https://blog.csdn.net/zb408832388/article/details/103481443

    https://www.jianshu.com/p/ef4a2268bdf1

    相关文章

      网友评论

          本文标题:docker 存储导致 /dev/sdb2磁盘溢满

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