6.1 docker logs 指令的主要功能
容器日誌記錄是管理和監控 Docker 應用的重要部分。日誌能幫助追踪容器的行為,診斷問題,並了解容器內應用的運行情況。在這堂課裡,我們會詳細介紹如何使用 docker logs 指令來記錄容器日誌。
docker logs 指令的主要功能
docker logs 指令用於提取和查看容器的日誌。它可以:
- 查看容器的標準輸出 (stdout) 和標準錯誤輸出 (stderr)。
- 篩選並即時追踪日誌。
- 搜索和分析日誌以診斷問題。
6.2 使用 docker logs 命令
1. 查看容器日誌
要查看容器的日誌,請使用以下命令:
docker logs <container_id_or_name>
範例:
docker logs my_container
這條命令會輸出容器 my_container 的所有日誌。
2. 實時跟蹤日誌
要實時跟蹤日誌,請使用標誌 -f (或 --follow):
docker logs -f <container_id_or_name>
範例:
docker logs -f my_container
此命令將會隨日誌的新增即時顯示。
3. 限制輸出行數
要限制 docker logs 命令輸出的行數,可以使用標誌 --tail:
docker logs --tail <number_of_lines> <container_id_or_name>
範例:
docker logs --tail 10 my_container
此命令會輸出容器 my_container 的最後 10 行日誌。
4. 從某個指定時間開始輸出日誌
要從某個時間開始輸出日誌,可以使用標誌 --since:
docker logs --since <timestamp> <container_id_or_name>
範例:
docker logs --since 2022-01-01T00:00:00 my_container
此命令會輸出容器 my_container 從 2022年1月1日開始的日誌。
5. 輸出到某個指定時間之前的日誌
要輸出到某個時間之前的日誌,可以使用標誌 --until:
docker logs --until <timestamp> <container_id_or_name>
範例:
docker logs --until 2022-01-02T00:00:00 my_container
此命令會輸出容器 my_container 到 2022年1月2日之前的日誌。
6.3 使用 docker logs 的範例
範例 1: 診斷應用程式錯誤
如果你的應用程式在容器內意外因錯誤退出,你可以使用 docker logs 來診斷原因:
docker logs my_app_container
查看日誌可以幫助你了解問題是什麼,為什麼應用程式會因錯誤退出。
範例 2: 追蹤服務運行
要實時追蹤 web 服務的運行,可以使用標誌 -f:
docker logs -f web_service_container
這個指令讓你能看到進入 web 服務的所有新日誌。
範例 3: 分析指定時間段的日誌
如果需要分析某個特定時間段的日誌,可以使用標誌 --since 和 --until:
docker logs --since "2023-07-01" --until "2023-07-02" my_app_container
這個指令會輸出容器 my_app_container 在 2023 年 7 月 1 日的日誌。
6.4 Docker日誌驅動程式配置
Docker 支援多種日誌驅動程式,可以為容器進行設定。主要的日誌驅動程式包括:
-
json-file: 預設值。日誌將保存為 JSON 格式的文件。 syslog: 日誌會被發送到系統日誌 (syslog)。journald: 日誌會被發送到 journald 系統。-
gelf: 日誌會被發送到支持 GELF (Graylog Extended Log Format) 協議的伺服器。 fluentd: 日誌會被發送到 Fluentd 伺服器。
設定日誌驅動程式
要設定日誌驅動程式,可以在啟動容器時使用 --log-driver 參數:
docker run --log-driver <driver_name> <container_image>
範例:
docker run --log-driver syslog my_app_image
此範例啟動了一個使用 syslog 日誌驅動程式的容器。
配置日誌參數
你可以使用 --log-opt 參數來指定日誌選項:
docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
GO TO FULL VERSION