如何取得上線服務的Docker Engine debug資訊

如何取得上線服務的Docker Engine debug資訊

在某些時間,在進行 Docker 與 Container 偵錯時,真的已經查到完全沒有頭緒時,總會把問題定位「是否是 Docker 本身的蟲呢?」在導入 Docker 之後,真的碰過幾次 Docker 本身的問題,都是查了很久才在 Github Issue 上查詢到一些線索,最久等超過一年以上才放出修正。當我們想知道 Docker 本身狀態時,你會發現,就 Docker CLI 都是偏 Container 的操作,docker logsdocker events…好像沒有可以取得 Docker 本身偵錯資訊的 CLI。

如果要取得 Docker 本身的偵錯訊息,有兩種方式,一是使用指令進行 Debug Mode,一是使用 daemon.json 組態指定 Debug Mode。

PS C:\>docker info
...
Debug Mode: false
...

使用 docker info 可以看到目前 Docker Engine 是否進入 Debug Mode。

利用 dockerd.exe 指令啟動 Docker 時可以加上 -D (大寫)來進入 Debug Mode。不過這會造成視窗被佔用。合適短期偵錯。

dockerd.exe -D

另一種修改 daemon.json(Windows 位於 C:\ProgramData\docker\config)加入 "debug": true 組態,重新啟動 Docker 後,Docker Engine 會把相關訊息輸出至 Windows 事件管理器。

Get-EventLog -Newest 100 -LogName Application
get eventlog for docker debug information

Docker Engine 輸出日誌量不小,在完成偵錯後建議關閉。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。