docker容器存放目錄磁盤(pán)空間滿了的解決
docker容器存放目錄磁盤(pán)空間滿了
在Liunx服務(wù)器上重啟docker的時(shí)候,發(fā)現(xiàn)容器啟動(dòng)不了了,報(bào)的錯(cuò)誤是:
"ERROR:cannot create temporary directory!"
我的猜測(cè)應(yīng)該就是磁盤(pán)空間滿了,于是執(zhí)行命令"df -h",出來(lái)的結(jié)果是 掛載點(diǎn)/var/lib/docker/overlay/ 已用%為100%,真的是磁盤(pán)空間用完了。
我不理解的是我的容器有配置數(shù)據(jù)卷呀,容器里面動(dòng)態(tài)增長(zhǎng)的數(shù)據(jù)例如上傳的圖片、產(chǎn)生的日志都是放在數(shù)據(jù)卷里面的,照常來(lái)說(shuō)是不會(huì)導(dǎo)致容器滿了呀,后面問(wèn)了公司的美女,美女說(shuō)讓我執(zhí)行命令:docker ps -s ,看看容器大小是不是太大了,如果是太大了應(yīng)該就是數(shù)據(jù)卷沒(méi)有設(shè)置好。
按照美女說(shuō)的執(zhí)行了,發(fā)現(xiàn)容器大小跟我第一次運(yùn)行容器的大小一樣,那就說(shuō)明數(shù)據(jù)卷是設(shè)置成功了。
然后就繼續(xù)問(wèn)美女咯,美女問(wèn)docker是誰(shuí)裝的,我回到說(shuō)是我自己安裝的并且還是采用離線的方式安裝的,美女就說(shuō)那你就是docker默認(rèn)目錄沒(méi)有改了,docker默認(rèn)目錄空間太小了,用不了多久就會(huì)滿了。
docker中默認(rèn)存放鏡像和容器的目錄是:/var/lib/docker/,就是上面我說(shuō)的掛載已經(jīng)滿了的家伙,那既然找到原因了,那就解決唄。
解決辦法
就是遷移默認(rèn)目錄/var/lib/docker下面的所有文件到新的目錄下面,然后將docker存放鏡像和容器的目錄改為新的目錄。
我的系統(tǒng)是Centos7,解決的具體步驟如下:
1、停止docker服務(wù)。
systemctl stop docker; //每個(gè)liunx版本的命令不一樣。
2、創(chuàng)建新的docker目錄,執(zhí)行命令df -h,找一個(gè)大的磁盤(pán)。
我的是放在/home目錄下面,我的/home目錄大小有900G。
我在 /home目錄下面建了 /home/docker/lib目錄,執(zhí)行的命令是:mkdir -p /home/docker/lib
3、遷移/var/lib/docker目錄下面的文件到 /home/docker/lib下面
cp -R /var/lib/docker/* /home/docker/lib/
注意:
- 如果文件內(nèi)容很多的話,為了確保成功最好是一個(gè)文件一個(gè)文件的拷貝。
- 如果在拷貝過(guò)程中報(bào)“設(shè)備上沒(méi)有空間”的錯(cuò)誤,就使用mv剪切。
4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf),在文件末添加 --graph=/home/docker/lib
devicemapper.conf文件的內(nèi)容如下:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --insecure-registry=私 服地址 --graph=/home/docker/lib
注意:
- 如果/etc/systemd/system/docker.service.d/devicemapper.conf
- 這個(gè)路徑找不到的話,就新建,新建之后加入內(nèi)容,沒(méi)有私 服地址的話就可以去掉”--insecure-registry=私 服地址”
5、重載配置,重啟docker
systemctl daemon-reload; systemctl restart docker; systemctl enable docker;
6、啟動(dòng)成功后,確定容器沒(méi)問(wèn)題后刪除/var/lib/docker/目錄中的文件,然后就OK了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ubuntu系統(tǒng)使用docker gitlab 磁盤(pán)空間滿的問(wèn)題及解決
這篇文章主要介紹了ubuntu系統(tǒng)使用docker gitlab 磁盤(pán)空間滿的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05修改Docker鏡像倉(cāng)庫(kù)為阿里云鏡像或163鏡像的實(shí)現(xiàn)
docker本身的倉(cāng)庫(kù)非常慢,但是國(guó)內(nèi)有阿里云的鏡像倉(cāng)庫(kù)非???本文主要介紹了修改Docker鏡像倉(cāng)庫(kù)為阿里云鏡像或163鏡像的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11docker 命令報(bào)異常permission denied的解決方案
這篇文章主要介紹了docker 命令報(bào)異常permission denied的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Docker 搭建lamp應(yīng)用實(shí)例詳解
這篇文章主要介紹了Docker 搭建lamp應(yīng)用實(shí)例詳解的相關(guān)資料,這里對(duì)搭建 LAMP的步驟做了詳細(xì)介紹,需要的朋友可以參考下2016-11-11docker容器內(nèi)安裝TensorRT的問(wèn)題
很多朋友在使用docker容器內(nèi)安裝TensorRT的時(shí)候,遇到一大堆棘手的問(wèn)題,不知道怎么處理好了,今天小編就docker安裝TensorRT的問(wèn)題給大家詳細(xì)介紹下,感興趣的朋友一起看看吧2021-05-05ubuntu如何查看docker容器占用的磁盤(pán)空間
這篇文章主要介紹了ubuntu如何查看docker容器占用的磁盤(pán)空間問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Docker rocketmq部署的實(shí)現(xiàn)示例
最近學(xué)習(xí)使用 rocketmq,需要搭建 rocketmq 服務(wù)端,本文主要記錄 rocketmq 搭建過(guò)程以及這個(gè)過(guò)程踩到的一些坑,感興趣的可以了解一下2021-12-12Docker入門(mén)教程之本地打包docker鏡像教程
Docker鏡像是一個(gè)特殊的文件系統(tǒng),既提供了運(yùn)行時(shí)所需的程序、庫(kù)和資源,還提供了相應(yīng)的配置參數(shù),只是不包含動(dòng)態(tài)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Docker入門(mén)教程之本地打包docker鏡像的相關(guān)資料,需要的朋友可以參考下2023-06-06在Idea中使用Docker部署SpringBoot項(xiàng)目的詳細(xì)步驟
這篇文章主要介紹了在Idea中使用Docker部署SpringBoot項(xiàng)目的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09