日誌分兩類,一類是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/docker.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:24224
是fluentd
服務位址,實際環境中應該換成真實的位址。
要改變dockerd的日誌為debug,可以重啟dockerd,並提供啟動引數-d或–debug,示例如下:
dockerd -ddockerd的日誌檔案,預設為/var/log/messages,也可以重定向到其他日誌檔案,示例如下:
dockerd -d >> log_file 2>&1方法二:
vi /etc/docker/daemon.json
重啟docker daemon
systemctl stop dockerdockerd支援的日誌級別debug, info, warn, error, fatal,預設的日誌級別為info。必要的情況下,還需要設定日誌級別,這也可以通過配置檔案,或者通過啟動引數-l或–log-level。systemctl daemon-reload
systemctl start docker
方法一:配置檔案/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...