解決/var/lib/docker空間不足問題

今天跑過來加班,剛寫好一個接口,準備啟動服務測試的時候,結果報錯啟動不了。報錯說是redis服務no space left on device(redis是測試環(huán)境,使用docker管理。

1.進測試服務器中,使用

docker logs --tail="200" ${實例id}

命令查看redis終端日志,結果依然是打印了一堆no space left on device,無果,沒有定位到任何問題點。

2.既然是磁盤空間不夠,那么使用

df -h

查看一下所有掛載的磁盤空間使用情況。

發(fā)現(xiàn)/var/lib/docker/overlay2把根目錄掛載的磁盤全部寫滿了,類似下面這種
image-20201018141737092.png

也就是說,/var/lib/docker這個路徑下的文件把咱們的根目錄寫滿了。定位到了問題點。

那么咱們就可以開始制定對應的解決方案了。

首先,咱們看到根目錄下的Size是16G,明顯是不能繼續(xù)支撐后續(xù)服務運行的,而且還會影響操作系統(tǒng)的運行。/root掛載的磁盤還有很大的余量,63G足夠保障docker服務的后續(xù)增長。那么就決定把/var/lib/docker挪到/root下面。

3.停止docker服務

systemctl stop docker

4.創(chuàng)建新的docker工作目錄

mkdir -p /root/dockerlib

這個目錄可以自定義,但是一定要保證在/root里面

5.遷移/var/lib/docker

rsync -avz /var/lib/docker /root/dockerlib/

6.配置devicemapper.conf

# 不存在就創(chuàng)建
sudo mkdir -p /etc/systemd/system/docker.service.d/
# 不存在就創(chuàng)建
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.處理完畢后,執(zhí)行

df -h
image-20201018143336504.png

根目錄和/root磁盤空間都處于一個相對理想狀態(tài)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容