[Docker] 使用 Docker events 監控事件
Docker 有提供 events 的指令用來監聽 Docker 的服務事件,例如在執行 docker run
的時候,就會經過 create -> attach -> start 的狀態。 這個可以用在很多地方,例如容器一直執行不起來的時候,就可以使用 docker events
來觀察到底是失敗在哪一個階段。
使用 docker events 指令
首先先開啟一個命令提示字元視窗,輸入以下指令,然後就把這個視窗放著。
- bash
1 | docker events --format "{{json .}}" | jq |
指令中使用了 jq 的工具,能夠讓 json 看起來更易讀
輸入成功後,該視窗會開始監聽 docker 的事件,如下圖。
接著開啟一個新的命令提示字元視窗,輸入以下指令
- bash
1 | docker run alpine |
就會看到 docker events
把各種事件的訊息列印出來,從 create -> attach 到加入 bridge 網路,最後容器 start 都會列印出來,從這些訊息就可以很清楚知道,docker 在執行容器起來的時候做了哪些事情。
小結
docker 不同類型的指令會接收到不同事件,例如執行 container 相關的指令的話會有 attach, create, destory 等等事件,執行 images 相關指令會有 delete, import, load 相關事件,詳細的事件說明可以參考 docker events 。
延伸閱讀
[tool - jq]
[docker events]
[Add an event-state diagram for containers]