CodeGym /課程 /Docker SELF /容器的日誌記錄

容器的日誌記錄

Docker SELF
等級 22 , 課堂 0
開放

6.1 docker logs 指令的主要功能

容器日誌記錄是管理和監控 Docker 應用的重要部分。日誌能幫助追踪容器的行為,診斷問題,並了解容器內應用的運行情況。在這堂課裡,我們會詳細介紹如何使用 docker logs 指令來記錄容器日誌。

docker logs 指令的主要功能

docker logs 指令用於提取和查看容器的日誌。它可以:

  • 查看容器的標準輸出 (stdout) 和標準錯誤輸出 (stderr)。
  • 篩選並即時追踪日誌。
  • 搜索和分析日誌以診斷問題。

6.2 使用 docker logs 命令

1. 查看容器日誌

要查看容器的日誌,請使用以下命令:

Terminal

docker logs <container_id_or_name>

範例:

Terminal

docker logs my_container 

這條命令會輸出容器 my_container 的所有日誌。

2. 實時跟蹤日誌

要實時跟蹤日誌,請使用標誌 -f (或 --follow):

Terminal

docker logs -f <container_id_or_name>

範例:

Terminal

docker logs -f my_container

此命令將會隨日誌的新增即時顯示。

3. 限制輸出行數

要限制 docker logs 命令輸出的行數,可以使用標誌 --tail

Terminal

docker logs --tail <number_of_lines> <container_id_or_name>

範例:

Terminal

docker logs --tail 10 my_container

此命令會輸出容器 my_container 的最後 10 行日誌。

4. 從某個指定時間開始輸出日誌

要從某個時間開始輸出日誌,可以使用標誌 --since

Terminal

docker logs --since <timestamp> <container_id_or_name>

範例:

Terminal

docker logs --since 2022-01-01T00:00:00 my_container

此命令會輸出容器 my_container 從 2022年1月1日開始的日誌。

5. 輸出到某個指定時間之前的日誌

要輸出到某個時間之前的日誌,可以使用標誌 --until

Terminal

docker logs --until <timestamp> <container_id_or_name>

範例:

Terminal

docker logs --until 2022-01-02T00:00:00 my_container

此命令會輸出容器 my_container 到 2022年1月2日之前的日誌。

6.3 使用 docker logs 的範例

範例 1: 診斷應用程式錯誤

如果你的應用程式在容器內意外因錯誤退出,你可以使用 docker logs 來診斷原因:

Terminal

docker logs my_app_container 

查看日誌可以幫助你了解問題是什麼,為什麼應用程式會因錯誤退出。

範例 2: 追蹤服務運行

要實時追蹤 web 服務的運行,可以使用標誌 -f:

Terminal

docker logs -f web_service_container 

這個指令讓你能看到進入 web 服務的所有新日誌。

範例 3: 分析指定時間段的日誌

如果需要分析某個特定時間段的日誌,可以使用標誌 --since--until:

Terminal

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 參數:

Terminal

docker run --log-driver <driver_name> <container_image>

範例:

Terminal

docker run --log-driver syslog my_app_image

此範例啟動了一個使用 syslog 日誌驅動程式的容器。

配置日誌參數

你可以使用 --log-opt 參數來指定日誌選項:

Terminal

docker run --log-driver syslog --log-opt syslog-address=udp://localhost:514 my_app_image
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION