2015-06-21 204 views
209

Docker守护进程日志在哪里?奇怪的是无法通过man,StackOverflow或Docker Docs找到答案。注意我不是要求docker容器STDOUT,而是守护进程日志,用于通过守护进程/代理来解决客户端和容器之间的通信问题。Docker守护进程日志在哪里?

回答

375

这取决于您的操作系统。这里有几个地点,用命令的几个操作系统:

  • 的Ubuntu(旧使用新贵) - /var/log/upstart/docker.log
  • 的Ubuntu(新使用systemd) - sudo journalctl -fu docker.service
  • Boot2Docker - /var/log/docker.log
  • 的Debian GNU/Linux的 - /var/log/daemon.log
  • CentOS的 - /var/log/daemon.log | grep docker
  • CoreOS - journalctl -u docker.service
  • Fedora的 - 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
  • 的Windows - Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time,提到here
+14

人值得一提的是'-D' docker选项来激活调试模式。请参阅https://docs.docker.com/reference/commandline/cli/#daemon – Thomasleveil

+0

如果您在守护进程模式下使用syslog驱动程序,则这也是您的STDOUT日志所在的位置。 –

+5

在运行Elastic Container Service的Amazon Linux实例上,它的/ var/log/docker – grant

56

如果你的操作系统是使用systemd,那么你可以查看码头工人守护程序日志有:

sudo journalctl -fu docker.service 
+0

这也显示了码头集装箱的输出......是否有一种方法可以过滤掉只显示'dockerd'日志? –

+2

@TheDoctorWhat,这可能是因为你有'journald'设置为你的日志记录驱动程序。从https://github.com/docker/docker/issues/23339#issuecomment-224275072,你可以通过使用'journalctl -fu docker _TRANSPORT = stdout + OBJECT_EXE = docker'来过滤容器内容并保留守护进程日志这里罚款) –

13

使用CentOS7,日志使用命令journalctl -u docker可用。清楚地回答,因为@ sabin的答案可能对旧版本的CentOS是准确的,但对我来说并不正确。

systemd有自己的日志系统称为日志。对于泊坞窗守护进程的日志可以使用journalctl -u泊坞窗中查看

编号:https://docs.docker.com/engine/admin/configuring/

6

对于Mac与码头工人工具箱,SSH进入VM先用docker-machine ssh %VM-NAME%然后检查/var/log/docker.log

8

泊坞窗的MAC(测试版)

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

9

对于泊坞窗的Mac原生(没有Boot2Docker或docker-machine,无需额外的VirtualBox运行你的Docker安装 - 我会推荐其他的),所有的答案对我来说都没有效果。但幸好Docker docs来救援。

如果你想看到在命令行泊坞窗守护程序日志,只需键入:

syslog -k Sender Docker 

或者从Mac OS塞拉利昂,您可以使用全新设计的Mac控制台应用程序(鸵鸟政策感到困惑这里的应用程序“终端”,控制台应用程序的图标看起来非常相似 - 我发现它与“其他”下的Launchpad。)。有一个article here,它描述了新的Mac OS Sierra控制台应用程序的一般用法,它并没有进入正式的Docker文档。

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

-2

添加方式找到码头工人守护程序日志中的窗口:

try

在Windows和Mac OSX使用泊坞窗机,守护程序在虚拟机内运行。

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

码头机ls 在输出中的NAME列下找到活动码头机的名称。

您可以将泊坞窗守护程序日志文件复制到本地目录分析:

泊坞窗机SCP默认:/var/log/docker.log ./ 如果默认激活你的泊坞窗机的名称。

5

在我的环境(码头工人的Mac 17.07),有在~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log

没有日志文件,而不是我能找到的日志文件,如下。

  1. 进入虚拟机。

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

  2. 检查日志文件

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

2

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

Docker Daemon Documentation

相关问题