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
网友评论