一文教你徹底解決Docker日志膨脹
最近,我發(fā)現(xiàn)一臺(tái)服務(wù)器的磁盤空間即將耗盡。經(jīng)過排查,發(fā)現(xiàn)某個(gè) Docker 容器在一年內(nèi)生成了14 GB 的日志文件。為避免類似問題,本文將指導(dǎo)你如何快速檢查、清理 Docker 日志,并設(shè)置日志大小限制以防止未來日志失控。
重啟容器(如服務(wù)器重啟或手動(dòng)執(zhí)行 systemctl restart docker)不會(huì)清除日志,日志文件會(huì)持續(xù)累積。
重建容器(刪除并重新創(chuàng)建容器)才會(huì)重置日志。
檢查 Docker 日志大小
默認(rèn)日志路徑:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
使用以下命令按大小排序查看所有日志文件:
find /var/lib/docker/containers/ -name "*-json.log" | xargs du -h | sort -hr
示例輸出:
5.9G /var/lib/docker/containers/d2e92.../d2e92...-json.log
4.9G /var/lib/docker/containers/ec7a4.../ec7a4...-json.log
根據(jù)容器 ID 查找容器名稱
使用docker inspect命令:
docker inspect --format='{{.Name}}' <容器ID>示例輸出:
/php-fpm-valente
(注意:輸出結(jié)果會(huì)以斜杠開頭,實(shí)際容器名為php-fpm-valente)
清理 Docker 日志
清理單個(gè)日志文件:``` truncate -s 0 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
清理所有日志文件(謹(jǐn)慎使用):``` truncate -s 0 /var/lib/docker/containers//-json.log
設(shè)置日志大小限制
1.編輯 Docker 守護(hù)進(jìn)程配置文件/etc/docker/daemon.json(若不存在則新建):
sudo nano /etc/docker/daemon.json
2.添加以下內(nèi)容(限制單個(gè)日志文件為 10MB,保留最多 3 個(gè)歸檔文件):
{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }
3.重啟 Docker 服務(wù)以生效:
sudo systemctl restart docker
**注意**:此配置僅對新創(chuàng)建的容器生效...
驗(yàn)證配置
使用以下命令檢查容器的日志配置:
docker inspect <容器名稱> | grep -A 4 LogConfig
示例輸出:
"LogConfig": {
"Type": "json-file",
"Config": {
"max-file": "3",
"max-size": "10m"
}
}
總結(jié)
- 定期檢查日志大小,避免磁盤空間耗盡。
- 通過
daemon.json配置日志輪轉(zhuǎn),限制日志文件大小。 - 清理日志時(shí)優(yōu)先使用
truncate,避免直接刪除文件導(dǎo)致容器異常。
遵循以上實(shí)踐,可有效管理 Docker 日志,提升服務(wù)器資源利用率和穩(wěn)定性。
到此這篇關(guān)于一文教你徹底解決Docker日志膨脹的文章就介紹到這了,更多相關(guān)Docker解決日志膨脹內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker部署MySQL主從復(fù)制的實(shí)現(xiàn)
本文主要介紹了Docker部署MySQL主從復(fù)制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10
Docker配置文件daemon.json配置國內(nèi)源的實(shí)現(xiàn)
本文主要介紹了Docker配置文件daemon.json配置國內(nèi)源的實(shí)現(xiàn),通過編輯daemon.json文件添加鏡像地址、重啟服務(wù)及驗(yàn)證步驟,提升鏡像拉取效率,感興趣的可以了解一下2025-08-08
docker容器單機(jī)創(chuàng)建3個(gè)節(jié)點(diǎn)的MySQLMGR集群方式
本文檔詳細(xì)介紹了如何在單機(jī)上使用Docker創(chuàng)建一個(gè)包含三個(gè)節(jié)點(diǎn)的MySQL MGR集群,通過一系列步驟,包括安裝Docker、配置MySQL MGR以及啟動(dòng)多個(gè)容器,成功構(gòu)建了一個(gè)高可用的MySQL集群環(huán)境2026-01-01
docker報(bào)錯(cuò)x509:certificate has expired or
這篇文章主要介紹了docker報(bào)錯(cuò)x509:certificate has expired or is not yet valid問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
docker下載運(yùn)行java項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了docker下載運(yùn)行java項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
Mac上使用Docker如何快速啟動(dòng)MySQL測試
本文主要討論如何使用Docker快速啟動(dòng) MySQL 測試,包括Mac環(huán)境。非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-10-10
Docker Swarm自動(dòng)擴(kuò)容的陷阱(3個(gè)致命誤區(qū))
本文主要介紹了Docker Swarm自動(dòng)擴(kuò)容的陷阱(3個(gè)致命誤區(qū)),包括聲明式服務(wù)模型、資源均衡分配策略及容錯(cuò)機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04

