解決docker目錄內(nèi)存不足擴(kuò)容處理方案
當(dāng)我們使用docker時(shí),經(jīng)常會(huì)創(chuàng)建新鏡像和新容器,在新容器中又會(huì)安裝各種包,這些東西不是虛擬的,而是實(shí)實(shí)在在存于我們的磁盤中,默認(rèn)在/var/lib/docker中,這個(gè)目錄是屬于系統(tǒng)盤的,而系統(tǒng)盤的空間往往不大,這樣就會(huì)造成,隨著時(shí)間的推移,docker越來越大,最后系統(tǒng)盤的空間被占滿,所以這個(gè)時(shí)候就需要遷移docker的存儲(chǔ)目錄到更大的盤,才能把系統(tǒng)盤的空間騰出來。
當(dāng)重啟容器提示no space left 就是內(nèi)存不足
1、查看服務(wù)器所有磁盤的使用情況
df -h

可以看到每個(gè)盤的大小,這里可以看到/dev/mapper/centos-root總大小是50G(相對(duì)其他盤小太多),之前docker給占滿了,因?yàn)槲液竺娼odocker相關(guān)遷移到了home下面,所以空出很大的空間,可以看到/dev/mapper/centos-home空間總大小984G,掛載點(diǎn)是/home,于是我給docker相關(guān)的目錄遷移到/home下了
2、查看docker鏡像和容器存儲(chǔ)目錄的空間大小
du -sh /var/lib/docker/
3、停止docker服務(wù)
systemctl stop docker
停止失敗的時(shí)候可以更換命令試試
service docker stop
4、docker目錄不足遷移擴(kuò)容方法
將docker遷移到大容量的磁盤中
我這里是遷移到/home/docker目錄下,相當(dāng)于給原來的/var換成了/home/docker其他的結(jié)構(gòu)和之前保持一致
# 首先創(chuàng)建目錄 mkdir -p /home/docker/lib/ #遷移 rsync -avz /var/lib/docker /home/docker/lib/

編輯/etc/docker/daemon.json,添加參數(shù),將docker的目錄遷移綁定
紅框是添加的參數(shù),nginx版本不同data-root可能會(huì)不生效,可以給data-root換成graph試試

重載和重啟docker服務(wù)
systemctl daemon-reload && systemctl restart docker
如果systemctl依然運(yùn)行失敗,可以使用以下命令重啟docker試試:
service docker restart
檢查docker是否綁定新目錄
docker info
如果Docker Root Dir由/var/lib/docker變?yōu)槟阒付ǖ哪夸洠f明遷移成功

刪除docker舊目錄
rm -rf /var/lib/docker
這個(gè)時(shí)候再去使用docker image 、 docker ps 就可以發(fā)現(xiàn)之前的鏡像和容器數(shù)據(jù)都在,并且可以正常使用啦
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker?cp命令詳解之如何在Docker容器和主機(jī)之間復(fù)制文件/文件夾
要從Docker容器中復(fù)制文件,可以使用docker?cp命令,下面這篇文章主要給大家介紹了關(guān)于Docker?cp命令詳解之如何在Docker容器和主機(jī)之間復(fù)制文件/文件夾的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
docker+gitlab+jenkins從零搭建自動(dòng)化部署
通過幾天的學(xué)習(xí)和自己的理解,整理了下Docker+Jenkins的自動(dòng)部署教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Docker安裝Redis并介紹可視化客戶端進(jìn)行操作
這篇文章主要介紹了Docker安裝Redis并介紹可視化客戶端進(jìn)行操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
docker Network(網(wǎng)絡(luò))詳解
這篇文章主要介紹了docker Network(網(wǎng)絡(luò)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
使用Vscode結(jié)合docker進(jìn)行開發(fā)的詳細(xì)過程
這篇文章主要介紹了如何使用Vscode結(jié)合docker進(jìn)行開發(fā),在本文中,我將提供一個(gè)在 Node 環(huán)境中運(yùn)行的 JavaScript 應(yīng)用程序示例。閱讀在容器內(nèi)開發(fā)以獲取所有技術(shù)堆棧的詳細(xì)文檔,需要的朋友可以參考下2021-07-07

