Docker設(shè)置日志滾動的解決方案
問題描述
Docker 容器中的進程會將打印到控制臺(console)的日志保存到容器的目錄下,默認的 Docker 配置不帶有日志的回滾。會在自己的容器目錄下往同一個日志文件中不停寫入,最后會導(dǎo)致磁盤空間占滿的問題。
解決方案
方案一:全局范圍內(nèi)修改(僅對新容器生效)
修改 docker.service 的配置,改完后 docker run 的新容器都可以應(yīng)用該配置,但舊的 container 不生效。
1.修改Docker 配置
如果該命令不生效請參考 注意事項 2
vim /etc/docker/daemon.json
添加日志配置:
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}log-opts的參數(shù)說明:
| 參數(shù) | 說明 |
|---|---|
| max-size | 容器日志文件上限大小 |
| max-file | 容器日志文件上限個數(shù) |
2.重啟Docker守護進程使配置生效
systemctl restart docker
3. 查看日志文件是否生效
查看日志所在路徑
docker inspect [容器名]
其中的 LogPath 字典項就是該容器的日志文件。

注意事項
- 上述操作執(zhí)行完后只能影響新 docker run 的容器,舊的容器不生效,若要修改現(xiàn)有容器配置,請查看解決方案2.
- 上述步驟 1 中的 daemon.json 可能不存在,存在另一個 daemon.conf 可以將 daemon.conf 改為 daemon.json ,但是非常不建議!??!,這樣更改后舊的容器會不認新配置導(dǎo)致舊容器消失,需要通過 docker run 鏡像重新啟動新的容器。 如果不小心誤操作更改了,可以將原文件恢復(fù),重啟 docker 守護進程(步驟三),舊的容器會重新出現(xiàn)。
- Docker 默認安裝后沒有
daemon.json這個文件,需要手動創(chuàng)建,需要Docker 的版本大于 1.12。 建議在安裝完 Docker 后優(yōu)先創(chuàng)建 daemon.json 文件,避免以后更改配置的不便。 - 修改后如果配置沒有生效,請檢查
/lib/systemd/system/docker.service文件,確認ExecStart字段其后有--config-file=/etc/docker/daemon.json配置,如果沒有添加上后執(zhí)行systemctl daemon-reload,然后重啟 docker 服務(wù)systemctl restart docker.service,重啟后檢查 ps aux | grep dockerd 查看配置有沒有正常配置。
方案二:修改已存在的容器配置
- 查看該容器日志配置文件路徑:
docker inspect [容器名] - 進入容器的日志配置文件目錄:如
cd /var/lib/docker/containers/<容器名> - 關(guān)閉容器服務(wù):
service docker stop - 修改
hostconfig.json配置文件,其LogConfig中的默認為"Config":{}, 改為為"Config":{"max-file":"3", "max-size": "100m"}
cp hostconfig.json hostconfig.json_bak # 備份配置文件 vim hostconfig.json # 修改 LogConfig 中的 Config
- 重啟docker,
service docker start.
按以上方法操作后 Docker 容器將會按照配置的的日志回滾規(guī)則管理日志文件,確保日志文件不會無限增長,也能夠方便地查看日志文件。
到此這篇關(guān)于Docker設(shè)置日志滾動的文章就介紹到這了,更多相關(guān)Docker日志滾動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker-compose部署redis報錯ERR Client sent AUTH,&
這篇文章主要介紹了docker-compose部署redis報錯ERR Client sent AUTH, but no password is set問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-10-10
Docker案例分析:搭建MySQL數(shù)據(jù)庫服務(wù)
這篇文章主要介紹了Docker案例分析:搭建MySQL數(shù)據(jù)庫服務(wù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Ubuntu中Docker報錯“Cannot?connect?to?the?Docker?daemon?at
這篇文章主要介紹了Ubuntu中Docker報錯“Cannot?connect?to?the?Docker?daemon?at?unix:///var/run/docker.sock”錯誤解決辦法的相關(guān)資料,這個問題通常表示Docker?守護進程未運行或者當前用戶沒有權(quán)限訪問Docker守護進程,需要的朋友可以參考下2026-04-04
Docker中iptables規(guī)則在iptables重啟后丟失的完整過程
這篇文章主要給大家介紹了關(guān)于Docker中iptables規(guī)則在iptables重啟后丟失的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Docker鏡像用普通用戶啟動服務(wù)的實現(xiàn)
使用普通用戶啟動Docker容器中的服務(wù),可以有效降低潛在的安全風(fēng)險,本文主要介紹了Docker鏡像用普通用戶啟動服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
docke-cli的調(diào)試環(huán)境搭建過程
在搭建docker-cli的調(diào)試環(huán)境時,遇到很多坑,通過本文講解下搭建docke-cli的調(diào)試環(huán)境的詳細方法,需要的朋友可以參考下2022-11-11

