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

可以看到每個(gè)盤(pán)的大小,這里可以看到/dev/mapper/centos-root總大小是50G(相對(duì)其他盤(pán)小太多),之前docker給占滿(mǎn)了,因?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遷移到大容量的磁盤(pán)中
我這里是遷移到/home/docker目錄下,相當(dāng)于給原來(lái)的/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)槟阒付ǖ哪夸?,說(shuō)明遷移成功

刪除docker舊目錄
rm -rf /var/lib/docker
這個(gè)時(shí)候再去使用docker image 、 docker ps 就可以發(fā)現(xiàn)之前的鏡像和容器數(shù)據(jù)都在,并且可以正常使用啦
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Docker Compose實(shí)現(xiàn)秒級(jí)擴(kuò)容的方法步驟
- Docker遷移及存儲(chǔ)擴(kuò)容遇到的問(wèn)題
- Docker配置Redis集群及主從擴(kuò)容與縮容的操作方法
- docker overlay擴(kuò)容問(wèn)題
- Rancher+Docker+SpringBoot實(shí)現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控
- 關(guān)于docker?compose安裝redis集群的問(wèn)題(集群擴(kuò)容、集群收縮)
- Docker進(jìn)階之快速擴(kuò)容的方法
- 詳解docker容器硬盤(pán)動(dòng)態(tài)擴(kuò)容
- Docker Swarm自動(dòng)擴(kuò)容的陷阱(3個(gè)致命誤區(qū))
相關(guān)文章
私有云存儲(chǔ)Minio Docker鏡像無(wú)法啟動(dòng),提示:Adding local Minio
使用Minio在本地搭建私有云存儲(chǔ)時(shí)出現(xiàn)無(wú)法啟動(dòng),查看日志頻繁輸出“Adding local Minio host to 'mc' configuration...”,然后停止了,本文給大家分享私有云存儲(chǔ)Minio Docker鏡像無(wú)法啟動(dòng),提示:Adding local Minio host to 'mc' configuration,感興趣的朋友一起看看吧2023-11-11
使用Docker容器部署MongoDB并支持遠(yuǎn)程訪(fǎng)問(wèn)及遇到的坑
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的,今天通過(guò)本文給大家介紹使用Docker容器部署MongoDB并支持遠(yuǎn)程訪(fǎng)問(wèn)及遇到的坑,感興趣的朋友一起看看吧2022-07-07
基于?Docker?和?Flask?構(gòu)建高并發(fā)微服務(wù)架構(gòu)的實(shí)現(xiàn)
本文主要介紹了基于?Docker?和?Flask?構(gòu)建高并發(fā)微服務(wù)架構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Centos 6.5中安裝docker的步驟(簡(jiǎn)潔版)
這篇文章主要介紹了Centos 6.5中安裝docker的步驟(簡(jiǎn)潔版),需要的朋友可以參考下2016-10-10
使用docker安裝hadoop的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了使用docker安裝hadoop的詳細(xì)過(guò)程,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
Docker?鏡像導(dǎo)入導(dǎo)出過(guò)程介紹
這篇文章主要介紹了Docker?鏡像導(dǎo)入導(dǎo)出過(guò)程,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
docker實(shí)現(xiàn)本地seata分布式環(huán)境搭建詳解
這篇文章主要為大家詳細(xì)介紹了docker實(shí)現(xiàn)本地seata分布式環(huán)境搭建的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2024-03-03
Docker的文件系統(tǒng)映射:主機(jī)與容器間目錄的雙向映射詳解
通過(guò)Docker的目錄映射功能,實(shí)現(xiàn)主機(jī)與容器間的數(shù)據(jù)共享與持久化存儲(chǔ),使用-v或--mount參數(shù)在運(yùn)行時(shí)設(shè)置主機(jī)與容器目錄映射,或通過(guò)DockerCompose配置文件實(shí)現(xiàn)自動(dòng)化,此功能提升數(shù)據(jù)管理靈活性和效率2024-11-11

