docker容器存放目錄磁盤空間滿了的解決
docker容器存放目錄磁盤空間滿了
在Liunx服務器上重啟docker的時候,發(fā)現(xiàn)容器啟動不了了,報的錯誤是:
"ERROR:cannot create temporary directory!"
我的猜測應該就是磁盤空間滿了,于是執(zhí)行命令"df -h",出來的結果是 掛載點/var/lib/docker/overlay/ 已用%為100%,真的是磁盤空間用完了。
我不理解的是我的容器有配置數(shù)據(jù)卷呀,容器里面動態(tài)增長的數(shù)據(jù)例如上傳的圖片、產生的日志都是放在數(shù)據(jù)卷里面的,照常來說是不會導致容器滿了呀,后面問了公司的美女,美女說讓我執(zhí)行命令:docker ps -s ,看看容器大小是不是太大了,如果是太大了應該就是數(shù)據(jù)卷沒有設置好。
按照美女說的執(zhí)行了,發(fā)現(xiàn)容器大小跟我第一次運行容器的大小一樣,那就說明數(shù)據(jù)卷是設置成功了。
然后就繼續(xù)問美女咯,美女問docker是誰裝的,我回到說是我自己安裝的并且還是采用離線的方式安裝的,美女就說那你就是docker默認目錄沒有改了,docker默認目錄空間太小了,用不了多久就會滿了。
docker中默認存放鏡像和容器的目錄是:/var/lib/docker/,就是上面我說的掛載已經(jīng)滿了的家伙,那既然找到原因了,那就解決唄。
解決辦法
就是遷移默認目錄/var/lib/docker下面的所有文件到新的目錄下面,然后將docker存放鏡像和容器的目錄改為新的目錄。
我的系統(tǒng)是Centos7,解決的具體步驟如下:
1、停止docker服務。
systemctl stop docker; //每個liunx版本的命令不一樣。
2、創(chuàng)建新的docker目錄,執(zhí)行命令df -h,找一個大的磁盤。
我的是放在/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/
注意:
- 如果文件內容很多的話,為了確保成功最好是一個文件一個文件的拷貝。
- 如果在拷貝過程中報“設備上沒有空間”的錯誤,就使用mv剪切。
4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf),在文件末添加 --graph=/home/docker/lib
devicemapper.conf文件的內容如下:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --insecure-registry=私 服地址 --graph=/home/docker/lib
注意:
- 如果/etc/systemd/system/docker.service.d/devicemapper.conf
- 這個路徑找不到的話,就新建,新建之后加入內容,沒有私 服地址的話就可以去掉”--insecure-registry=私 服地址”
5、重載配置,重啟docker
systemctl daemon-reload; systemctl restart docker; systemctl enable docker;
6、啟動成功后,確定容器沒問題后刪除/var/lib/docker/目錄中的文件,然后就OK了。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Ubuntu20.04上安裝docker步驟及docker使用方法
Docker是一個可以簡化容器中應用程序進程管理過程的應用程序,容器允許你在資源隔離的進程中運行應用程序,這篇文章主要介紹了Ubuntu20.04上安裝docker步驟及docker使用的相關資料,需要的朋友可以參考下2026-04-04
使用docker compose搭建consul集群環(huán)境的例子
consul是HashCorp公司推出使用go語言編寫的開源工具,用于實現(xiàn)分布式系統(tǒng)的服務發(fā)現(xiàn)與配置,今天給大家普及使用docker compose搭建consul集群環(huán)境的方法及consul基本知識講解,感興趣的朋友一起看看吧2021-06-06
Docker部署Nacos并接入SpringBoot服務完整流程
本次實踐圍繞 Docker 部署穩(wěn)定可用的 Nacos 服務、開啟登錄鑒權、開放 gRPC 端口,并實現(xiàn) SpringBoot 服務注冊到 Nacos 展開,解決了版本兼容、鑒權配置、端口通信等核心問題,需要的朋友可以參考下2026-03-03

