Docker 是一種流行的應用程式容器化平台,能夠加快應用程式的建置部署和管理速度。然而,在使用 Docker 運行應用程式時,我們可能會遇到一些意外問題,這需要查看 Docker 啟動日誌以了解問題的根本原因。那麼,要怎麼查看 Docker 啟動日誌呢?
Docker 提供了一個內建的指令 docker logs,可以用來查看容器內的標準輸出和標準錯誤輸出。若要使用該指令,可以先查看正在執行的容器的 ID 或名稱,透過 docker ps 指令可以檢視:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8623f22d0b74 nginx "nginx -g 'daemon of…" 10 days ago Up 2 hours 80/tcp web
在上面的輸出中,容器 ID 為 8623f22d0b74,容器名稱為 web。可以使用 docker logs 指令查看容器內的日誌輸出:
$ docker logs 8623f22d0b74 172.17.0.1 - - [02/May/2020:19:41:04 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-" 172.17.0.1 - - [02/May/2020:19:41:06 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "-"
在上面的輸出中,我們可以看到 NGINX 伺服器的存取日誌,這個指令可以簡單地幫助我們找到容器的啟動問題。
除了使用 docker logs 指令,我們也可以使用 docker events 指令來檢視 Docker 啟動事件。這個指令可以觀察 Docker 發出的所有事件,並輸出對應的資訊。例如,我們可以使用以下命令查看 Docker 運行的所有事件:
$ docker events ... 2020-05-02T19:44:07.842095081+00:00 container destroy 8623f22d0b746eee40b1568a78ffdf2f1555a9c5b557d8c5a5a5eaa32c7f1ede (image=nginx, name=web) 2020-05-02T19:44:08.273816081+00:00 network disconnect 6cbedee6e77d 03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7 (endpoint=03ac9adf39af42c8d651f0ed60073c92837e866aebb0c75bfcb3f3c9a701bcb7, name=bridge, type=bridge) 2020-05-02T19:44:09.260029423+00:00 network destroy 6cbedee6e77d (name=bridge)
在上面的輸出中,我們可以看到容器的銷毀事件、網路的斷開事件以及網路的銷毀事件。這個指令可以幫助我們了解 Docker 容器的其他事件。
Docker 容器的所有日誌都會儲存在容器的檔案系統中。因此,我們可以使用常規的文件檢視工具例如 cat、tail 或 grep 來查看它們。例如,如果要查看容器的系統日誌,可以使用下列指令:
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 /var/lib/docker/containers/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10/8623f22d0b74cea5f8d76432734ec06c19683d698583cc59dd8f4af4bb70ac10-json.log
這條指令將輸出容器的日誌檔案路徑。我們可以繼續使用 tail 指令來查看日誌檔案的後幾行:
$ docker inspect --format='{{.LogPath}}' 8623f22d0b74 | xargs tail -f ...
在上面的輸出中,我們可以看到容器的即時日誌輸出。可以使用 Ctrl-C 快捷鍵來停止檢視日誌。
總結
Docker 的日誌管理是一個複雜的過程,但是透過使用 Docker 提供的內建指令,我們可以輕鬆地查看容器內發生的問題。透過使用 docker logs 命令、docker events 命令或查看容器日誌文件,我們可以隨時了解 Docker 容器的正在運行的情況,為部署和管理 Docker 應用程式提供強大的支援。
以上是怎麼查看docker啟動日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!