Docker守护程序日志在哪里?奇怪的是,通过man,StackOverflow或Docker Docs无法找到答案。注意我不是要求docker容器STDOUT,而是要求守护进程日志通过守护进程/代理来解决客户端和容器之间的通信问题。
答案 0 :(得分:528)
这取决于您的操作系统。以下是几个位置,包含几个操作系统的命令:
/var/log/upstart/docker.log
sudo journalctl -fu docker.service
/var/log/docker
/var/log/docker.log
/var/log/daemon.log
/var/log/daemon.log | grep docker
journalctl -u docker.service
journalctl -u docker.service
/var/log/messages | grep docker
journalctl -u docker.service
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log
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守护程序的日志
答案 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/docker.log
没有日志文件
相反,我可以找到如下日志文件。
进入虚拟机。
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
或
$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
检查日志文件
/ # tail -f /var/log/docker.log
答案 5 :(得分:9)
Docker for Mac(测试版)
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.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
答案 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守护程序日志的方法:
在Windows和Mac OSX上使用docker machine时,守护程序在虚拟机内运行。
首先,找到你的活动Docker机器。
docker-machine ls 在输出中的NAME列下找到活动docker机器的名称。
您可以将docker守护程序日志文件复制到本地目录以进行分析:
docker-machine scp default:/var/log/docker.log ./ 默认值为docker machine的活动名称。