云计算核心技术Docker教程:强制堆栈跟踪记录
如果守护程序无响应,则可以通过向SIGUSR1守护程序发送信号来强制记录完整的堆栈跟踪。
Linux:
$ sudo云计 kill -SIGUSR1 $(pidof dockerd)
Windows Server:
下载docker-signal。
获算核取dockerd的进程ID Get-Process dockerd。
运行带有标志的可执行文件--pid=。
这将强制记心技录堆栈跟踪,但不会停止守护程序。守护程序日志显示堆栈跟踪或包含堆栈跟踪的文件的路径(如果已将其记录到文件中)。
在术D处理SIGUSR1信号并将堆栈跟踪信息转储到日志之后,守护程序将继续运行。堆栈跟踪可用于确定守护程序中所有gorocoutine和线程的状态。
查看堆栈跟踪
可以使用以下方法之一查看Docker守护程序日志:
1.通过使用以下命令journkealctl -u docker.service在Linux系统上运行systemctl
2./var/log/messager教s,/var/log/daemon.log或/var/log/docker.log在较旧的Linux系统上
无法在M程:ac的Docker桌面或Windows的Docker桌面上手动生成堆栈跟踪。但是,如果遇到问题,可以单击Docker任强制务栏图标,然后选择诊断和反馈以将信息发送给Docker。
Docker日志中查找如下消息:
...goroutine s堆栈tacks written to /var/run/docker/goroutine-stacks-2017-06-02T跟踪193336z.log
...daemon datastructure dump written to /var/run/d记录ocker/daemon-data-2017-06-02T193336z.log
Docker保存这些堆栈跟踪和转储的云计位置取决于您的操作系统和配置。有时您可以直接从堆栈跟踪和转储中获得有用的诊断信息。否则,您可以将此信息提供给D算核ocker,以帮助诊断问题。




