linux 系統(tǒng)報(bào)錯(cuò): cannot create temp file for here-document: No space left on device,顯然是磁盤完全占用,無(wú)剩余
方法:
首先,查看磁盤的使用情況的,命令:df -h, /dev/sdb2 作為我服務(wù)器默認(rèn)根目錄所在,最重要的是默認(rèn)系統(tǒng)軟件安裝,安裝了許多包,/dev/sdb2磁盤爆滿

然后, 查看/dev/sdb2磁盤內(nèi)不同文件夾具體占用情況,命令:du -sh ./*,其中./var占用最大,同理進(jìn)入/var目錄下進(jìn)一步查看,./lib占用最大,/var/lib目錄是系統(tǒng)默認(rèn)包安裝地址,發(fā)現(xiàn)其下的docker占用磁盤317G;
原因:隨著docker image 和container的增多,導(dǎo)致磁盤過(guò)度占用;
最簡(jiǎn)單的解決方法:將 dcoker 存儲(chǔ)目錄轉(zhuǎn)移到其他空余磁盤
首先:暫停docker服務(wù):sudo systermctl stop docekr.service
然后:轉(zhuǎn)移docker 存儲(chǔ),并在/va/lib/目錄創(chuàng)建對(duì)應(yīng)軟鏈接:
sudo mv /var/lib/docker /mnt/
cd /var/lib; sudo ln -st /mnt/docker dokcer

/va/lib/目錄需要?jiǎng)?chuàng)建鏈接原因:docker 的默認(rèn)存儲(chǔ)路徑(Docker Root Dir)在/var/lib/docker ,原來(lái)的創(chuàng)建的images和containers的配置文件需要在/var/lib/docker下查找,故轉(zhuǎn)移/var/lib/docker之后,必須將對(duì)應(yīng)的轉(zhuǎn)移文件地址參數(shù)傳遞給系統(tǒng),否則無(wú)法查找到之前創(chuàng)建的images和containers,不能有效加載到docker環(huán)境;
最后:重新啟動(dòng)docker服務(wù)
sudo systermctl daemon-reload # 重新加載系統(tǒng)變量,主要是/var/lib/docker-->/mnt/docker鏈接的加載
sudo systermctl start docker.service # 重啟
經(jīng)驗(yàn)小結(jié):
沒(méi)有創(chuàng)建鏈接前,我將docker的配置文件中的存儲(chǔ)目錄修改為/mnt/docker ,雖然docker運(yùn)行了,但是docker之間創(chuàng)建的images和containers都未能加載到環(huán)境中蹦年使用,添加了軟鏈接之后,就可以全部加載原來(lái)的images和containers,之后我將docker系統(tǒng)配置又修改回去了,有了/var/lib/docker指向/mnt/docker的系統(tǒng)鏈接之后,不再需要修改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
http://m.itdecent.cn/p/ef4a2268bdf1