docker 日誌位置

2021-08-17 17:08:09 字數 2807 閱讀 2301

日誌分兩類,一類是docker 引擎日誌;另一類是容器日誌

docker 引擎日誌 

docker 引擎日誌一般是交給了upstart(ubuntu 14.04) 或者systemd(centos 7, ubuntu 16.04)。前者一般位於/var/log/upstart/docker.log下,後者一般通過jounarlctl -u docker來讀取。不同系統的位置都不一樣,so上有人總結了乙份列表,我修正了一下,可以參考:

系統日誌位置

ubuntu(14.04)

/var/log/upstart/docker.log

ubuntu(16.04)

journalctl -u docker.service

centos 7/rhel 7/fedora

journalctl -u docker.service

coreos

journalctl -u docker.service

opensuse

journalctl -u docker.service

osx~/library/containers/com.docker.docker/data/com.docker.driver.amd64-linux/log/d‌​ocker.log

debian gnu/linux 7

/var/log/daemon.log

debian gnu/linux 8

journalctl -u docker.service

boot2docker

/var/log/docker.log

容器日誌 

容器的日誌則可以通過docker logs命令來訪問,而且可以像tail -f一樣,使用docker logs -f來實時檢視。如果使用 docker compose,則可以通過docker-compose logs 《服務名》來檢視。

如果深究其日誌位置,每個容器的日誌預設都會以json-file的格式儲存於/var/lib/docker/containers/《容器id>/《容器id>-json.log下,不過並不建議去這裡直接讀取內容,因為 docker 提供了更完善地日誌收集方式 -docker 日誌收集驅動

關於日誌收集,docker內建了很多日誌驅動,可以通過類似於fluentd,syslog這類服務收集日誌。無論是docker引擎,還是容器,都可以使用日誌驅動。比如,如果打算用fluentd收集某個容器日誌,可以這樣啟動容器:

$ docker run -d \

– log-driver=fluentd \

–log-opt fluentd-address=10.2.3.4:24224 \

–log-opt tag=」docker.}」 \

nginx

其中10.2.3.4:24224fluentd服務位址,實際環境中應該換成真實的位址。

要改變dockerd的日誌為debug,可以重啟dockerd,並提供啟動引數-d或–debug,示例如下:

dockerd -d

dockerd的日誌檔案,預設為/var/log/messages,也可以重定向到其他日誌檔案,示例如下:

dockerd -d >> log_file 2>&1

方法二:

vi /etc/docker/daemon.json

重啟docker daemon

systemctl stop docker

systemctl daemon-reload

systemctl start docker

dockerd支援的日誌級別debug, info, warn, error, fatal,預設的日誌級別為info。必要的情況下,還需要設定日誌級別,這也可以通過配置檔案,或者通過啟動引數-l或–log-level。

方法一:配置檔案/etc/docker/daemon.json

方法二:

dockerd --

log-level debug

dockerd -l debug

方法一:

tail -f /var/log/messages

方法二:

watch -d -n 1 cat /var/log/messages

-d表示高亮不同的地方,-n表示多少秒重新整理一次。

該指令,不會直接返回命令列,而是實時列印日誌檔案中新增加的內容,這一特性,對於檢視日誌是非常有效的。如果想終止輸出,按 ctrl+c 即可

日誌原始碼分析:

docker 日誌位置

日誌分兩類,一類是docker 引擎日誌 另一類是容器日誌。docker 引擎日誌 docker 引擎日誌一般是交給了upstart ubuntu 14.04 或者systemd centos 7,ubuntu 16.04 前者一般位於 var log upstart docker.log下,後者一...

hive日誌位置

日誌記錄了程式執行的過程,是一種查詢問題的利器。hive中的日誌分為兩種 1.系統日誌,記錄了hive的運 況,錯誤狀況。2.job 日誌,記錄了hive 中job的執行的歷史過程。系統日誌儲存在什麼地方呢 在hive conf hive log4j.properties 檔案中記錄了hive日誌的...

docker日誌 及 docker容器日誌

docker容器的日誌是預設存在本地的 var lib docker containers container id container id json.log 裡。可以用以下命令查log檔案的位置 docker inspect container id grep log 或 docker insp...