Docker 日誌放在哪?


雖然我們可以透過 docker logs <container name> 去看 container 裡的日誌,但是如果 docker 服務壞了,我們要去哪裡找呢?

Docker 日誌

Docker 日誌 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (CentOS 7, Ubuntu 16.04)。前者一般位於 /var/log/upstart/docker.log 下,後者一般通過 jounarlctl -u docker 来讀取。不同系统的位置都不一樣,可以參考下表:

OS系統日誌路徑
Ubuntu(14.04)/var/log/upstart/docker.log
Ubuntu(16.04)journalctl -u docker.service
CentOSjournalctl -u docker.service
Fedorajournalctl -u docker.service

Docker 容器日誌

  • docker logs <container name> 命令執行,也可以像 tail -f <xxx.log>一樣方式,docker logs -f <container name>
  • Docker Compose,可以使用 docker-compose logs <container name> 查看

Docker 清除日誌

  • 查看所有containers日誌大小:
    ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
  • 清除日誌:
    truncate -s 0 $(find /var/lib/docker/containers/ -name *-json.log)

Docker 日設設定

max-file=3,一個container有三個日誌,分别為 id+.json、id+1.json、id+2.json

[root@Docker]# vim /etc/docker/daemon.json
"log-driver":"json-file",
"log-opts":{ "max-size" :"50m","max-file":"3"}
, ,