檢視容器記錄

docker logs 命令會顯示執行中容器記錄的資訊。 docker service logs 命令會顯示參與服務的所有容器記錄的資訊。記錄的資訊和記錄的格式幾乎完全取決於容器的端點命令。

根據預設,docker logsdocker service logs 會顯示命令的輸出,就像您在終端機中以互動方式執行命令時一樣。Unix 和 Linux 命令在執行時通常會開啟三個 I/O 串流,稱為 STDINSTDOUTSTDERRSTDIN 是命令的輸入串流,可能包含來自鍵盤的輸入或來自另一個命令的輸入。 STDOUT 通常是命令的正常輸出,而 STDERR 通常用於輸出錯誤訊息。根據預設,docker logs 會顯示命令的 STDOUTSTDERR。如需深入瞭解 I/O 和 Linux,請參閱 Linux 文件計畫關於 I/O 重新導向的文章記錄驅動程式,並且已停用 "雙重記錄",則 docker logs 可能不會顯示有用的資訊。

  • 如果您的映像檔執行非互動式流程(例如網路伺服器或資料庫),則該應用程式可能會將其輸出傳送到記錄檔,而不是 STDOUTSTDERR
  • 在第一種情況下,您的記錄會以其他方式處理,您可以選擇不使用 docker logs。在第二種情況下,官方 nginx 映像檔顯示了一種解決方法,而官方 Apache httpd 映像檔則顯示了另一種解決方法。

    官方 nginx 映像檔會從 /var/log/nginx/access.log 建立到 /dev/stdout 的符號連結,並從 /var/log/nginx/error.log 建立到 /dev/stderr 的另一個符號連結,覆寫記錄檔並導致記錄傳送到相關的特殊裝置。請參閱 DockerfileDockerfile後續步驟