【发布时间】:2023-09-11 10:33:02
【问题描述】:
Docker 守护进程日志在哪里?奇怪的是,无法通过 man、* 或 Docker Docs 找到答案。注意我不是要 docker 容器 STDOUT,而是要通过守护程序/代理对客户端和容器之间的通信进行故障排除的守护程序日志。
【问题讨论】:
Docker 守护进程日志在哪里?奇怪的是,无法通过 man、* 或 Docker Docs 找到答案。注意我不是要 docker 容器 STDOUT,而是要通过守护程序/代理对客户端和容器之间的通信进行故障排除的守护程序日志。
【问题讨论】:
这取决于您的操作系统。以下是几个位置,其中包含适用于少数操作系统的命令:
/var/log/upstart/docker.log
sudo journalctl -fu docker.service
/var/log/docker
/var/log/docker.log
/var/log/daemon.log
/var/log/message | 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.13 移动了 OSX 位置,但我找不到任何相关文档。
docker-machine ssh $host tail -f /var/lib/boot2docker/log/docker.log。 (docker-machine version 0.16.1, build cce350d7)
/var/log/docker.log
如果您的操作系统使用systemd,那么您可以使用以下命令查看 docker daemon 日志:
sudo journalctl -fu docker.service
【讨论】:
dockerd 日志?
journald 设置为日志记录驱动程序。从github.com/docker/docker/issues/23339#issuecomment-224275072,您可以使用journalctl -fu docker _TRANSPORT=stdout + OBJECT_EXE=docker 过滤容器内容并仅保留守护程序日志(在这里工作正常)
使用 CentOS 7.x 或 8.x,可以使用命令 journalctl -u docker 获取日志。清楚地回答,因为@sabin 的回答对于旧版本的 CentOS 可能是准确的,但对我来说并不正确。
systemd 有自己的日志系统,称为日志。可以使用 journalctl -u docker 查看 docker 守护进程的日志
【讨论】:
对于带有 Docker Toolbox 的 Mac,首先使用 docker-machine ssh %VM-NAME% SSH 进入 VM,然后检查 /var/log/docker.log
【讨论】:
Docker for Mac(测试版)
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log
【讨论】:
对于 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 相关的日志。
【讨论】:
添加在windows中查找docker daemon log的方法:
在 Windows 和 Mac OSX 上使用 docker 机器时,守护程序在虚拟机中运行。
首先,找到您的活动 Docker 机器。
码头机器 ls 在输出中的 NAME 列下找到活动 docker 机器的名称。
您可以将 docker daemon 日志文件复制到本地目录进行分析:
docker-machine scp 默认:/var/log/docker.log ./ 其中 default 是您的 docker 机器的活动名称。
【讨论】:
在我的环境中(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
【讨论】:
Mac OSX 的 docker 日志位置已更改为 ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring
【讨论】:
你也可以通过这个命令查看日志:
docker service ps --no-trunc {serviceName}
【讨论】:
以下解决方案在 Ubuntu 20.04 中对我有用
日志存储在:/var/lib/docker/containers/<container id>/<container id>-json.log
要知道容器 ID:$ docker ps
【讨论】:
我无法在 Manjaro 20/Arch Linux 下找到日志。相反,我只是停止了 docker 守护进程并使用$ sudo dockerd -D 重新启动了debug mode 中的守护进程以生成日志。不幸的是,官方 Docker 文档没有为 Arch 提供这些信息。
这不仅适用于 Arch,也适用于其他系统。
【讨论】:
docker 容器日志 --details container_id
示例:docker 容器日志 --details fsd96b784eacc
【讨论】: