Docker守护程序日志在哪里?


344

Docker守护程序日志在哪里?奇怪的是无法通过man,StackOverflow或Docker Docs找到答案。注意我不是在要求Docker容器STDOUT,而是要通过守护程序日志来对通过守护程序/代理进行的客户端与容器之间的通信进行故障排除。



您应该选择一个答案作为主要答案,因为它似乎已经几年了。
Light.G

Answers:


601

这取决于您的操作系统。以下是一些位置,以及一些操作系统的命令:

  • Ubuntu(旧版本使用upstart)- /var/log/upstart/docker.log
  • Ubuntu(使用systemd的新功能)- sudo journalctl -fu docker.service
  • Amazon Linux AMI- /var/log/docker
  • Boot2Docker- /var/log/docker.log
  • Debian GNU / Linux- /var/log/daemon.log
  • CentOS- /var/log/daemon.log | grep docker
  • CoreOS- journalctl -u docker.service
  • 软呢帽- journalctl -u docker.service
  • 红帽企业Linux服务器- /var/log/messages | grep docker
  • OpenSuSE- journalctl -u docker.service
  • OSX- ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log
  • 视窗- Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time,提到这里

如果在守护程序模式下使用syslog驱动程序,则STDOUT日志也将在此运行。
Ganesh Hegde '02

我相信这已经1.13转移了OSX的位置,但是我找不到关于它的任何文档。
mkobit

1
@Thomasleveil的链接不再起作用。我相信等效的链接会在这里docs.docker.com/engine/reference/commandline/dockerd
Adam Mazzarella

docker-machine:使用docker-machine ssh $host tail -f /var/lib/boot2docker/log/docker.log。(docker-machine version 0.16.1,build cce350d7)
Claudio

94

如果您的操作系统正在使用,systemd则可以使用以下命令查看docker daemon日志:

sudo journalctl -fu docker.service

这也显示了docker容器的输出...是否有一种方法可以过滤掉它们以仅显示dockerd日志?
docwhat

3
@TheDoctorWhat,这可能是因为您已将其journald设置为日志记录驱动程序。从github.com/docker/docker/issues/23339#issuecomment-224275072中,您可以过滤掉容器中的内容,并使用journalctl -fu docker _TRANSPORT=stdout + OBJECT_EXE=docker(在这里工作正常)仅保留守护进程日志
Ciro Costa

22

使用CentOS7,可以使用命令获得日志journalctl -u docker。由于@sabin的答案对于较旧版本的CentOS可能是准确的,但答案并不明确,对我而言并非如此。

systemd有自己的日志系统,称为日志。可以使用journalctl -u docker查看docker守护程序的日志

参考:https : //docs.docker.com/engine/admin/configuring/


13

在我的环境(适用于Mac 17.07的docker)中,没有日志文件位于 ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log

相反,我可以找到如下的日志文件。

  1. 输入VM。

    $ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
    要么
    $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

  2. 检查日志文件

    / # tail -f /var/log/docker.log


11

对于Docker Mac Native(没有Boot2Docker或docker-machine,在没有额外VirtualBox的情况下运行Docker安装-我会建议其他人推荐使用),所有答案对我来说都不起作用。但是幸运的是,Docker文档得以挽救。

如果要在命令行上查看docker守护程序日志,只需键入:

syslog -k Sender Docker

或者从Mac OS Sierra开始,您可以使用新设计的Mac控制台应用程序(此处不要与“终端”应用程序混淆,控制台应用程序的图标看起来非常相似-我在“其他”下方的启动板中找到了它。 。”)。这里有一篇文章介绍了新Mac OS Sierra控制台应用程序的一般用法,但尚未纳入正式的Docker文档中。

在控制台应用程序内,只需选择system.logDocker在搜索栏中键入。而已。现在您应该看到所有与Docker相关的日志。


9

Mac版Docker(测试版)

~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log


7

对于使用Docker Toolbox的Mac,首先使用ssh进入VM docker-machine ssh %VM-NAME%,然后检查/var/log/docker.log




-1

添加在Windows中查找Docker守护程序日志的方法:

尝试

在Windows和Mac OSX上使用docker machine时,守护程序在虚拟机内部运行。

首先,找到活动的Docker机器。

docker-machine ls在输出的NAME列下找到活动的docker计算机的名称。

您可以将docker daemon日志文件复制到本地目录以进行分析:

docker-machine scp default:/var/log/docker.log ./其中default是活动的docker计算机的名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.