您好,登錄后才能下訂單哦!
本篇內容介紹了“如何配置日志驅動”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在 Docker 中,由多種方式存儲應用程序日志,這些存儲日志的方式被稱為“日志驅動(Logging Driver)”。
它具有多種類型日志驅動,例如 none、local、json-file 等等,還可以實現自己的日志驅動。詳細內容可參考官方「Supported logging drivers」與「Use a logging driver plugin」文檔。
本筆記內容是對官方 19.03/Configure logging drivers 文檔的學習與整理,詳細內容請參考官方文檔。
默認為 json-file 日志驅動,但是可以修改。
修改 /etc/docker/daemon.json 配置文件(示例):
{ "log-driver": "syslog", "log-opts": { "max-size": "500m", "max-file": "3", "labels": "production_status", "env": "os,customer" } }
log-opts 可用屬性取決于日志驅動類型(log-driver),如果日志驅動支持其他選項,則可以進行添加。
也可以為特定容器配置日志驅動。在啟動容器時,指定 --log-driver 選項:
docker run -it --log-driver none alpine ash
日志分發由兩種模型:(1)阻塞;(2)非阻塞
“非阻塞”用于防止日志后端壓力而導致應用程序崩潰。詳細內容可參考官方文檔。
可以使用-e或--label選項指定日志標簽,在生成的日志中會附加某些標簽。詳細內容可參考官方文檔。
企業版支持“雙重日志”,即不管使用哪種日志驅動,都可以使用 docker logs 命令查看,但是社區版目前(01/08/2020)只支持查看 local、json-file、journald 這三種日志驅動,因此“我們”通常也只需要關注這三中。
讀取輪轉日志需要消耗磁盤與 CPU 使用
最大日志文件大小由Docker數據目錄大小決定
如果使用 systemd 運行 Docker 服務,則日志由 systemd-journald 管理。使用 journalctl -u docker.service 查看 Docker 日志。
不同版本的 Docker,默認日志驅動不同。根據官方文檔 19.03/Configure the default logging driver 所述:The default logging driver is json-file。
執行命令 docker info --format "{{.LoggingDriver}}" 查看當前默認的日志驅動。
執行命令 docker inspect -f '{{.HostConfig.LogConfig.Type}}' <CONTAINER> 查看容器的日志驅動。
/var/lib/docker/containers/<container_id>/<container_id>-json.log
如果容器使用 json-file 日志驅動,根據官方 19.03/JSON File logging driver 文檔對 max-size 的描述,容器的日志不會論轉,會一直增長。
通過在 Docker 18.09.1 測試,也是如此,日志文件 <container_id>-json.log 會不斷增長,因此我們需要調整日志驅動參數。
“如何配置日志驅動”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。