Docker守护进程日志在哪里?

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

414947 次浏览

这取决于你的操作系统。下面是几个位置,其中包含针对少数操作系统的命令:

  • 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 - cat /var/log/message | grep docker
  • CoreOS - journalctl -u docker.service
  • Fedora - journalctl -u docker.service
  • 红帽企业Linux服务器- /var/log/messages | grep docker
  • OpenSuSE - journalctl -u docker.service
  • macOS - ~/Library/Containers/com.docker.docker/Data/log/vm/d‌​ocker.log
  • Windows - Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time,如前所述在这里

如果你的操作系统使用systemd,那么你可以使用以下命令查看docker守护进程日志:

sudo journalctl -fu docker.service

使用CentOS 7。X或8。x,通过journalctl -u docker命令可以获取日志。明确回答,因为@sabin的答案对于旧版本的CentOS可能是准确的,但对我来说并不正确。

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

裁判:https://docs.docker.com/engine/admin/configuring/

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

Mac版Docker(测试版)

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

对于Docker Mac Native(没有Boot2Docker或Docker -machine,运行Docker安装而不需要额外的VirtualBox -这是我推荐的),所有的答案都不适合我. c。但是码头工人文档幸运地救了他。

如果你想在命令行上查看docker守护进程日志,只需输入:

syslog -k Sender Docker

或者从Mac OS Sierra开始,你可以使用新设计的Mac控制台应用程序(不要在这里与应用程序“终端”混淆,控制台应用程序的图标看起来非常相似-我发现它与“Others..”下面的Launchpad)。有一个文章在这里描述了新的Mac OS Sierra控制台应用程序的一般用法,它还没有进入官方Docker文档。

在控制台应用程序中,只需选择system.log并在搜索栏中键入Docker。´s。现在您应该可以看到所有与Docker相关的日志。

增加了在windows中查找docker守护进程日志的方法:

try

当在Windows和Mac OSX上使用docker机器时,守护进程在虚拟机中运行。

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

< p > docker-machine ls 在输出的name列下找到活动的docker机器的名称

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

docker-machine SCP default:/var/log/docker.log ./

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

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

  1. 进入虚拟机。

    < p > $ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

    $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty < / p >
  2. 检查日志文件

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

Mac OSX的docker日志位置已更改为~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring

看到Docker Daemon文档

你也可以通过这个命令查看日志:

docker service ps --no-trunc {serviceName}

我无法找到Manjaro 20/Arch Linux下的日志。相反,我只是停止了docker守护进程,并用$ sudo dockerd -D重新启动了调试模式中的守护进程,以产生日志。不幸的是,官方Docker文档没有为Arch提供这个信息。
这不仅适用于Arch,一般来说也适用于其他系统

在Sabin的回答中,适用于我的Windows命令是:

Get-EventLog -LogName Application -Source DockerService