Docker守护程序日志在哪里?

时间:2015-06-21 21:18:39

标签: logging docker

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

12 个答案:

答案 0 :(得分:528)

这取决于您的操作系统。以下是几个位置,包含几个操作系统的命令:

  • Ubuntu(旧的使用暴发户) - /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
  • 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

答案 1 :(得分:81)

如果您的操作系统使用systemd,则可以使用以下命令查看docker守护程序日志:

sudo journalctl -fu docker.service

答案 2 :(得分:21)

使用CentOS7,可以使用命令journalctl -u docker获取日志。明确回答,因为@ sabin的答案对于旧版本的CentOS可能是准确的,但对我来说却不是这样。

  

systemd有自己的日志记录系统。可以使用journalctl -u docker

查看docker守护程序的日志

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

答案 3 :(得分:11)

对于 Docker Mac Native (没有Boot2Docker或docker-machine,在没有额外VirtualBox的情况下运行Docker安装 - 我会建议其他人使用),所有答案都不起作用我即可。但幸运的是Docker docs拯救了。

如果要查看docker守护程序登录命令行,只需键入:

syslog -k Sender Docker

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

在控制台应用内部,只需选择 system.log ,然后在搜索栏中输入Docker即可。而已。现在您应该看到所有与Docker相关的日志。

答案 4 :(得分:10)

在我的环境(docker for 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

    $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

  2. 检查日志文件

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

答案 5 :(得分:9)

Docker for Mac(测试版)

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

答案 6 :(得分:7)

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

答案 7 :(得分:3)

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

请参阅Docker Daemon Documentation

答案 8 :(得分:3)

您还可以通过以下命令查看日志:

docker service ps --no-trunc {serviceName}

答案 9 :(得分:0)

以下解决方案在 Ubuntu 20.04 中对我有用

日志存储在:/var/lib/docker/containers/<container id>/<container id>-json.log

要知道容器 ID:$ docker ps

答案 10 :(得分:0)

我在 Manjaro 20/Arch Linux 下找不到日志。相反,我只是停止了 docker 守护进程,并在 debug mode 中使用 $ sudo dockerd -D 重新启动了守护进程以生成日志。遗憾的是,官方 Docker 文档没有为 Arch 提供此信息。
这不仅适用于 Arch,也适用于其他系统。

答案 11 :(得分:-1)

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

try

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

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

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

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

docker-machine scp default:/var/log/docker.log ./ 默认值为docker machine的活动名称。