4.1 docker logs
指令的基礎
docker logs
指令 是個很方便的工具,用於監控和除錯容器。通過這個指令,開發者和系統管理員可以查看容器的日志,這對診斷問題和分析應用程式運行狀況很有幫助。在這堂課中,我們會詳細介紹如何使用 docker logs
指令,哪些參數可以用,還有如何有效地管理日志。
docker logs
指令 會輸出你指定容器的日志。這些日志包括容器內部的進程寫入標準輸出 (stdout)
和錯誤輸出 (stderr)
的所有消息。
語法
docker logs [OPTIONS] CONTAINER
其中:
-
CONTAINER
: 你想查看日志的容器名稱或 ID。 -
OPTIONS
: 用於配置日志輸出的附加參數。
基本用法示例
這條指令會輸出容器 my_container
的所有累積日志。
docker logs my_container
4.2 docker logs 指令的參數
docker logs
指令支持幾個選項,可以根據具體需求來配置日誌的輸出。
1. 實時查看日誌
使用參數 -f (follow)
可以實時查看日誌。這個參數讓你可以像 tail -f
一樣即時跟蹤日誌的更新。
docker logs -f my_container
2. 限制輸出的日誌行數
透過使用參數 --tail
,可以限制 docker logs
指令輸出的行數。這在只需要日誌的最後幾行而不是整個日誌時很有用。
docker logs --tail 100 my_container
這個例子會只輸出容器 my_container
的最後 100 行日誌。
3. 從特定時間開始輸出日誌
參數 --since
允許從指定的時間開始輸出日誌。時間可以是時間戳格式(如 2023-07-20T15:00:00)或相對格式(如 1h 表示最近一小時的日誌)。
docker logs --since "2023-07-20T15:00:00" my_container
或者
docker logs --since 1h my_container
4. 輸出到特定時間的日誌
參數 --until
允許輸出到指定時間的日誌。時間格式與參數 --since
相同。
docker logs --until "2023-07-20T16:00:00" my_container
或者
docker logs --until 10m my_container
5. 合併 stdout
和 stderr
默認情況下,docker logs
指令會輸出標準輸出流 (stdout)
和標準錯誤流 (stderr)
。你可以用 --stdout
和 --stderr
來指定輸出哪些流。
docker logs --stdout my_container
這個例子會只輸出標準輸出流中的訊息。
4.3 使用範例
範例 1: 查看日誌的最後幾行並實時跟踪更新
這個範例會輸出容器 my_container 的最後 50 行日誌,並實時跟踪新的記錄。
docker logs -f --tail 50 my_container
範例 2: 輸出過去 24 小時的日誌
這個範例會輸出容器 my_container
在過去 24 小時內所有累積的日誌。
docker logs --since 24h my_container
範例 3: 輸出特定時間段內的日誌
這個範例會輸出容器 my_container
在 2023 年 7 月 20 日 15:00 到 16:00 期間記錄的日誌。
docker logs --since "2023-07-20T15:00:00" --until "2023-07-20T16:00:00" my_container
4.4 實際應用場景
1. 調試應用程式
如果你的應用程式運行不正常或者崩潰了,查看日誌可以幫助診斷問題。使用 docker logs 指令來找到日誌中的錯誤和警告。
docker logs my_app_container
2. 監控伺服器運行
為了實時監控伺服器的運行,你可以使用 docker logs
指令加上 -f
選項。
docker logs -f web_server_container
這可以讓你實時跟蹤伺服器的請求和響應。
3. 分析性能
如果你希望分析應用程式在特定時間段內的性能,可以使用參數 --since
和 --until
。
docker logs --since "2023-07-20T00:00:00" --until "2023-07-20T23:59:59" my_app_container
GO TO FULL VERSION