国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?

這篇具有很好參考價(jià)值的文章主要介紹了docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、問題

今天突然發(fā)現(xiàn)跑服務(wù)器上的項(xiàng)目掛了,上去看了一下原來是磁盤滿了。

df -h

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

看來是目錄 /var/lib/docker/overlay2 下占滿了磁盤,看看里面是什么。

二、解決

1、查看 /var/lib/docker 目錄

這一塊只是查找哪些文件占滿了磁盤,不感興趣的朋友可以不看。

/var/lib/docker 目錄是 docker 的默認(rèn)目錄,進(jìn)去看看

cd /var/lib/docker

檢索文件的最大深度1,即只檢索匯總計(jì)算當(dāng)前目錄下的文件

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

(1)、containers 目錄

可以看到 containers 中占磁盤空間最大,這是 docker 存儲鏡像的目錄,進(jìn)去看看里面有什么

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

看不出什么來,繼續(xù)進(jìn)入

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到一個(gè) -json.log 的文件很大,竟然有4G多,這是 docker 的日志文件,看看 containers 目錄的其他子目錄是不是也有這個(gè)類型的文件

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

看來也有,并且和所在目錄同名,直接查看所有的 -json.log 目錄吧

du -ha /var/lib/docker/containers/ | grep "json.log" | sort -rh

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

嗯。。。各個(gè)都不小,把他們?nèi)辶艘材芮宄鰜砗芸捎^的空間了。

等會停了容器再清。

(2)、volumes 目錄

這里接著看看 volumes 目錄

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

看到也是類似 containers 目錄的東西,先進(jìn)第一個(gè)看看

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到是一個(gè) _data 目錄,看不出什么,繼續(xù)進(jìn)入

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

其中 flow.jar 是我的jar包,目錄 logs 應(yīng)該就是日志文件了,進(jìn)去看看

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

還放在我的包名命名的目錄里,繼續(xù)進(jìn)入

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

也是很多的日志文件。。?;氐?logs 目錄統(tǒng)計(jì)一下吧

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到有5G多。。。

同樣的方式進(jìn)入 volums 目錄中的第二個(gè)子目錄

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到也有2G多。。。

也可以直接查看目錄的詳細(xì)信息,命令如下:

du -ha /var/lib/docker/volumes/ | grep "info.*.log" | sort -rh

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到有很多的日志文件,單個(gè)雖然不大,但卻很多。

這里也先不清,后面再清。

(3)、overlay2 目錄

再看看 overlay2 目錄

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

雖然只有11G,但進(jìn)去發(fā)現(xiàn)目錄挺多,先看看各個(gè)目錄的大小

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

找出最大的應(yīng)該目錄,看看里面有什么

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

看看哪個(gè)文件夾比較大

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到 merged 和 diff 占磁盤空間比較大,work 目錄可以不用管。

diff :

diff 文件夾是一個(gè)只讀的文件系統(tǒng)層,它包含了Docker鏡像的變更內(nèi)容。當(dāng)您對容器進(jìn)行修改或添加新文件時(shí),這些變更會被記錄在 diff 文件夾中。每個(gè)Docker鏡像都有一個(gè)對應(yīng)的 diff 文件夾,用于存儲與基礎(chǔ)鏡像的差異。

merged:

merged 文件夾是一個(gè)可讀寫的文件系統(tǒng)層,它是由基礎(chǔ)鏡像和 diff 文件夾合并而成的。當(dāng)您啟動一個(gè)Docker容器時(shí), merged 文件夾中的內(nèi)容將作為容器的文件系統(tǒng)。這個(gè)文件夾是容器運(yùn)行時(shí)的可寫層,您可以在容器中對文件進(jìn)行修改或添加新文件,這些修改將存儲在 merged 文件夾中。

2、清理

前面已經(jīng)知道了日志在

/var/lib/docker/containers
/var/lib/docker/volumes
/var/lib/docker/overlay2

(1)、清理 /var/lib/docker/containers 目錄

先創(chuàng)建清理腳本文件,這里名為 docker_logs_clean.sh ,可以自定義,命令如下:

touch docker_logs_clean.sh

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

查看文件可以發(fā)現(xiàn) docker_logs_clean.sh 是只讀的

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

賦予讀寫權(quán)限,命令如下:

chmod +777 docker_logs_clean.sh

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

然后在加入如下腳本:

echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
        do
                echo "clean containers logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker containers logs ========"

這是從這個(gè)老哥的博客中拿到的,很多博客都說這個(gè)腳本可以清除還在運(yùn)行的docker日志,保險(xiǎn)起見,我這里就先把運(yùn)行的容器給停了。

之后執(zhí)行腳本文件,命令如下:

sh docker_logs_clean.sh start

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

再看一下磁盤空間:

df -h

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到清理出一些空間了。

如果保存時(shí)報(bào)如下錯:

“docker_logs_clean.sh” E514: write error (file system full?)

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

這是因?yàn)榇疟P已滿,先手動清理一些空間出來。我這里就清除了一下 /var/lib/docker/volumes 目錄下的日志文件。

假如執(zhí)行清理腳本報(bào)錯:

line 4: syntax error near unexpected token `$‘do\r’

可以用如下命令查看腳本文件換行符是否合法:

cat -v docker_logs_clean.sh

cat -v 文件名:查看換行符是否合法,如果是上述的,則行結(jié)尾會是^m
需要轉(zhuǎn)換成linux/unix格式的”\n”

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

原因:這可能是在window系統(tǒng)中創(chuàng)建好文件,再上傳到服務(wù)器,導(dǎo)致?lián)Q行符不符合Linux的格式。

解決辦法:

sed 's/\r//' docker_logs_clean.sh > docker_logs_clean.sh

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

(2)、清理 /var/lib/docker/volumes 目錄

假如不更新項(xiàng)目,只是想清一下日志,前面已經(jīng)查到 /var/lib/docker/volumes 目錄下的日志,這里重新查一下,命令如下:

find /var/lib/docker/volumes -name "*.log"

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

使用如下命令清除

find /var/lib/docker/volumes -type f -name "*.log" -delete

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到那些日志文件都清除了。

再檢查一下文件docker占比

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到 /var/lib/docker/volumes 目錄只剩下791M了,這些是我的jar包。

假如要更新項(xiàng)目,則清除所有的鏡像,命令如下:

docker system prune -a 

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

輸入 y 回車就可以刪除了,我使用的是docker-compose部署的微服務(wù),這里就先不刪除。

刪除所有的卷,命令如下:


docker volume prune 

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

輸入 y 回車就可以刪除了,我使用的是docker-compose部署的微服務(wù),這里就先不刪除。

使用docker-compose時(shí)只清除項(xiàng)目鏡像和容器,需要 docker-compose.yml 文件所在目錄,我這里是 /www/wwwroot/changjing/jar ,命令如下

docker-compose down --rmi all

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

看一下docker-compose的容器

docker-compose ps

以及鏡像

docker-compose images

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到容器和鏡像都被刪除了。

再查看一下 /var/lib/docker 目錄的磁盤占比

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可能是因?yàn)槲仪懊嬉呀?jīng)清理過日志文件了,看不出什么變化, /var/lib/docker/volumes 目錄占791M是jar包。

那再刪除一下卷:

docker volume prune

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到 /var/lib/docker/volumes 目錄釋放了一些空間,應(yīng)該是把jar包清理了。

再查看一下服務(wù)器磁盤空間分布

df -h

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

應(yīng)該清得差不多了。

(3)、清理 /var/lib/docker/overlay2 目錄

經(jīng)過前面的清理只剩下 /var/lib/docker/overlay2 目錄占磁盤空間大一些了,使用刪除鏡像和容器的命令清理:

docker system prune -a

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

清除了2G的空間,再看一下docker磁盤占用

du -h --max-depth=1

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

可以看到 /var/lib/docker/overlay2 目錄也清理得差不多了。

(4)、限制docker日志大小

按照前面的方式清理,隔一段時(shí)間后磁盤又會被docker日志占滿,這里設(shè)置一下日志上限。

編輯 /etc/docker/daemon.json 文件,第一次應(yīng)該是沒有的,創(chuàng)建就好了,加入如下配置:

{
	"registry-mirrors": ["http://hub-mirror.c.163.com"],
	"storage-driver": "overlay2",
	"storage-opts": [
		"overlay2.override_kernel_check=true",
		"overlay2.size=15G"
	],
	"log-driver": "json-file",
	"log-opts": {
		"max-size": "1024m",
		"max-file": "3"
	}
}

解釋:

registry-mirrors:設(shè)置鏡像加速。
storage-driver:指定Docker的存儲驅(qū)動,常見的選項(xiàng)包括 “overlay2”、“aufs”、“btrfs”、“devicemapper” 和 “zfs”,一般為 “overlay2”。
storage-opts:存儲驅(qū)動程序選項(xiàng)。
log-driver:容器日志的默認(rèn)驅(qū)動程序,默認(rèn)為 “json-file” 。
log-opts:容器默認(rèn)日志驅(qū)動程序選項(xiàng)。

然后重新加載一下docker的配置文件

systemctl daemon-reload

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

再重啟一下docker

systemctl restart docker

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

注意,重啟之后原來的鏡像和容器要刪除,不然重新啟動是報(bào)錯的?。。?/p>

如果啟動容器時(shí)報(bào)如下錯就是因?yàn)闆]有重新拉取鏡像。

docker: Error response from daemon: open /var/lib/docker/overlay2/2ef38eb701745d5e944dd8c04d404347cd1d7d87140ff48817c935901bcd9550/committed: no such file or directory.

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

假如重啟docker失敗

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

報(bào)錯如下:

docker.socket: Failed with result ‘service-start-limit-hit’.

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

只要把 daemon.json 的改為 daemon.conf ,命令如下:

mv /etc/docker/daemon.json /etc/docker/daemon.conf

再次重啟就好了。

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

(5)、限制docker-compose的單個(gè)容器日志

這個(gè)只有使用docker-compose部署項(xiàng)目的小伙伴才能用到,在每個(gè)容器配置下加入如下配置:

logging:
  driver: "json-file"
  options:
    max-size: "256m"
    max-file: "3"

docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?,服務(wù)器,docker,eureka,容器

然后再使用docker-compose命令啟動容器。文章來源地址http://www.zghlxwxcb.cn/news/detail-809901.html

到了這里,關(guān)于docker部署項(xiàng)目,/var/lib/docker/overlay2目錄滿了如何清理?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • docker磁盤爆滿,linux docker /var/lib/docker/overlay2占用磁盤原因分析

    docker磁盤爆滿,linux docker /var/lib/docker/overlay2占用磁盤原因分析

    提示:這里描述項(xiàng)目中遇到的問題: 某天發(fā)現(xiàn)自己的博客網(wǎng)站掛掉了。上騰訊云發(fā)現(xiàn)是 磁盤已經(jīng)滿了 。 一般原因有下列幾種情況,逐步分析即可 1.docker鏡像占用磁盤 2.docker日志 3./var/lib/docker/overlay2下的容器文件(主要) 這種情況先使用 docker images 對象查看有哪些鏡像,可

    2024年02月08日
    瀏覽(27)
  • /dev/mapper/centos-root或/var/lib/docker/overlay2 占滿的解決方法

    實(shí)際清理過程如下(省略了不必要的部分) 1.查找占用過大的部分 2.以上可知是docker的鏡像和容器的問題,查看是否屬實(shí) 3.確實(shí)有很多無用的鏡像和容器,開始清理 4.查看清理的效果 可見一下子就騰出了16G的空間 5.進(jìn)一步清理(使用 Docker 的垃圾回收功能來清理廢棄的鏡像和容

    2024年03月17日
    瀏覽(18)
  • docker磁盤空間爆滿 通過overlay2 目錄名查找對應(yīng)容器

    docker磁盤空間爆滿 通過overlay2 目錄名查找對應(yīng)容器

    看到占用磁盤空間最大的目錄是docker存儲根目錄下的overlay2目錄 再查看docker存儲根目錄下的overlay2目錄下哪個(gè)目錄占用空間最大 找出最大的這個(gè)overlay2目錄的目錄名是:ef129273a3f100feec4970bee90b0b83d9f1b170f6a76668eba9bdcfbf5f4ac8 下面需要使用這個(gè)目錄名字符串去反向查找這個(gè)目錄屬于哪

    2024年02月16日
    瀏覽(24)
  • 【docker】解決docker overlay2目錄占用大量磁盤空間,導(dǎo)致驗(yàn)證碼出不來,報(bào)錯Can‘t create output stream!

    【docker】解決docker overlay2目錄占用大量磁盤空間,導(dǎo)致驗(yàn)證碼出不來,報(bào)錯Can‘t create output stream!

    ???????? 驗(yàn)證碼出現(xiàn) Can\\\'t create output stream! 報(bào)錯信息 ????????所在服務(wù)器磁盤使用率已經(jīng)到達(dá)100%,經(jīng)排查,服務(wù)器目錄 /var/lib/docker/overlay2 占用大量磁盤空間, ????????使用 【docker system prune】 命令刪除清理docker系統(tǒng)空間 ????????獲取當(dāng)前目錄占用磁盤大小命令

    2024年01月25日
    瀏覽(22)
  • Docker:overlay2淺析以及解決overlay2 文件過大的問題

    Docker:overlay2淺析以及解決overlay2 文件過大的問題

    最近在學(xué)習(xí)docker的實(shí)現(xiàn)時(shí)看到這么一個(gè)概念:Union File System,先讓我們來介紹介紹它。 定義:聯(lián)合文件系統(tǒng)(UnionFS)是一種分層、輕量級并且高性能的文件系統(tǒng),它支持對文件系統(tǒng)的修改作為一次提交來一層層的疊加,同時(shí)可以將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下(unit

    2024年02月07日
    瀏覽(22)
  • docker overlay2 清理

    docker overlay2 清理

    使用命令進(jìn)行運(yùn)行容器時(shí),沒對日志文件進(jìn)行限制,隨著時(shí)間的增長,日志文件越來越大,如果寫日志比較頻繁,文件超過100g也是很正常. 第一種,找到對應(yīng)文件進(jìn)行刪除 進(jìn)入docker 的containers目錄:cd /var/lib/docker/containers 查看容器文件夾占用內(nèi)存大小: du -sh * 如找到大文件夾,進(jìn)入該

    2024年02月15日
    瀏覽(23)
  • Docker 深度清除鏡像緩存 (overlay2)

    Docker 深度清除鏡像緩存 (overlay2) 一般情況下,運(yùn)維清理鏡像是通過命令 docker rm i 刪除鏡像的。但是這條命令不會刪除docker build命令產(chǎn)生的緩存文件。 這個(gè)時(shí)候需要使用 docker system 的系列命令來做相關(guān)處理。 輸出: 參數(shù): -a 刪除全部未使用的鏡像 -f 或 --force 不經(jīng)過確認(rèn)

    2024年02月08日
    瀏覽(19)
  • docker overlay2 是存放什么的?

    docker overlay2是Docker中的存儲驅(qū)動之一,用于管理鏡像和容器層的數(shù)據(jù)。它使用最小存儲空間來存儲像層這樣的臨時(shí)數(shù)據(jù)。 overlay2本質(zhì)上是多層存儲驅(qū)動。它將鏡像和容器層都視為獨(dú)立的匿名臨時(shí)文件系統(tǒng)。然后通過聯(lián)合掛載將這些層組合成所需的最終文件系統(tǒng)。 overlay2使用兩個(gè)

    2024年02月15日
    瀏覽(17)
  • Docker overlay2磁盤占用過高

    Docker overlay2磁盤占用過高主要有以下三個(gè)原因: ??1、容器日志文件過大,未作限制 ??2、docker未用容器、鏡像、緩存等過多 ??3、docker默認(rèn)路徑存放不合理 ??通過以下兩條命令可以定位磁盤占用過高原因,可根據(jù)查詢結(jié)果做相應(yīng)處置。 1、df -h 容量查詢 2、du -sh * 文

    2024年02月14日
    瀏覽(26)
  • 不小心刪除了docker/overlay2怎么辦?

    不小心刪除了docker/overlay2怎么辦?

    服務(wù)器硬盤容量達(dá)到頂峰,沒有空閑空間。利用df -h的時(shí)候查看到/data/docker/overlay2占用最大。以為這里面都是docker的緩存文件,刪除也無妨,所以直接通過 rm -rf 命令刪除。(沒有做任何備份)刪完之后整個(gè)人就傻了,所有的容器運(yùn)行全部失敗。 此時(shí)!不要慌,不要著急做其

    2024年02月15日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包