Docker設(shè)置日志滾動的解決方案
問題描述
Docker 容器中的進程會將打印到控制臺(console)的日志保存到容器的目錄下,默認的 Docker 配置不帶有日志的回滾。會在自己的容器目錄下往同一個日志文件中不停寫入,最后會導致磁盤空間占滿的問題。
解決方案
方案一:全局范圍內(nèi)修改(僅對新容器生效)
修改 docker.service 的配置,改完后 docker run 的新容器都可以應用該配置,但舊的 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 ,但是非常不建議!??!,這樣更改后舊的容器會不認新配置導致舊容器消失,需要通過 docker run 鏡像重新啟動新的容器。 如果不小心誤操作更改了,可以將原文件恢復,重啟 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 服務systemctl restart docker.service
,重啟后檢查 ps aux | grep dockerd 查看配置有沒有正常配置。
方案二:修改已存在的容器配置
- 查看該容器日志配置文件路徑:
docker inspect [容器名]
- 進入容器的日志配置文件目錄:如
cd /var/lib/docker/containers/<容器名>
- 關(guān)閉容器服務:
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之如何設(shè)置日志文件大小及個數(shù)
這篇文章主要介紹了docker之如何設(shè)置日志文件大小及個數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05Docker-Compose搭建Spark集群的實現(xiàn)方法
本文主要介紹了Docker-Compose搭建Spark集群的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05Docker鏡像構(gòu)建之docker commit的使用
本文主要介紹了Docker鏡像構(gòu)建之docker commit的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04docker安裝nacos并配置數(shù)據(jù)庫的全過程
這篇文章主要給大家介紹了關(guān)于docker安裝nacos并配置數(shù)據(jù)庫的相關(guān)資料, Nacos是SpringCloudAlibaba架構(gòu)中最重要的組件,Nacos 是一個更易于幫助構(gòu)建云原生應用的動態(tài)服務發(fā)現(xiàn)、配置和服務管理平臺,文中介紹的非常信息,需要的朋友可以參考下2023-09-09Windows/Mac系統(tǒng)Docker方式安裝Mysql(包含utf8)
本文主要介紹了Windows/Mac系統(tǒng)Docker方式安裝Mysql(包含utf8),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11