linux 系統(tǒng)報錯: cannot create temp file for here-document: No space left on device阎肝,顯然是磁盤完全占用谅摄,無剩余
方法:
首先兔综,查看磁盤的使用情況的不同,命令:df -h, /dev/sdb2 作為我服務(wù)器默認根目錄所在未檩,最重要的是默認系統(tǒng)軟件安裝伟姐,安裝了許多包罚拟,/dev/sdb2磁盤爆滿
然后, 查看/dev/sdb2磁盤內(nèi)不同文件夾具體占用情況驱敲,命令:du -sh ./*铁蹈,其中./var占用最大,同理進入/var目錄下進一步查看众眨,./lib占用最大握牧,/var/lib目錄是系統(tǒng)默認包安裝地址,發(fā)現(xiàn)其下的docker占用磁盤317G娩梨;
原因:隨著docker image 和container的增多沿腰,導(dǎo)致磁盤過度占用;
最簡單的解決方法:將 dcoker 存儲目錄轉(zhuǎn)移到其他空余磁盤
首先:暫停docker服務(wù):sudo systermctl stop docekr.service
然后:轉(zhuǎn)移docker 存儲狈定,并在/va/lib/目錄創(chuàng)建對應(yīng)軟鏈接:
sudo mv /var/lib/docker /mnt/
cd /var/lib; sudo ln -st /mnt/docker dokcer
/va/lib/目錄需要創(chuàng)建鏈接原因:docker 的默認存儲路徑(Docker Root Dir)在/var/lib/docker 颂龙,原來的創(chuàng)建的images和containers的配置文件需要在/var/lib/docker下查找,故轉(zhuǎn)移/var/lib/docker之后,必須將對應(yīng)的轉(zhuǎn)移文件地址參數(shù)傳遞給系統(tǒng)厘托,否則無法查找到之前創(chuàng)建的images和containers友雳,不能有效加載到docker環(huán)境;
最后:重新啟動docker服務(wù)
sudo systermctl daemon-reload # 重新加載系統(tǒng)變量铅匹,主要是/var/lib/docker-->/mnt/docker鏈接的加載
sudo systermctl start docker.service # 重啟
經(jīng)驗小結(jié):
沒有創(chuàng)建鏈接前押赊,我將docker的配置文件中的存儲目錄修改為/mnt/docker ,雖然docker運行了包斑,但是docker之間創(chuàng)建的images和containers都未能加載到環(huán)境中蹦年使用流礁,添加了軟鏈接之后,就可以全部加載原來的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://www.reibang.com/p/ef4a2268bdf1