我們在服務器端經常要根據服務器日誌排查問題,每當我們的服務通過docker部署,想要檢索日誌該怎麼排查比較方便呢,下面提供兩種方法:
一.通過查找宿主機日誌路徑,通過Linux命令查看即可。
1.1 查看容器日誌路徑
查看自己的容器ID,通過docker ps命令
查看容器對應的日誌路徑
docker inspect fe65b0dbf0f7
找到LogPath參數:
1.2 按照日誌路徑檢索日誌
grep "XXXX" /data/docker_home/containers/fe65b0dbf0f7eb9582598eb51db019f65746c6a72fafbf0319e0ca0f4a9dd6b1/fe65b0dbf0f7eb9582598eb51db019f65746c6a72fafbf0319e0ca0f4a9dd6b1-json.log
大日誌文件操作可以結合Linux其他命令檢索即可。
二、通過docker命令檢索日誌
命令格式
-
$ docker logs [OPTIONS] CONTAINER
-
Options:
-
--details 顯示更多的信息
-
-f, --follow 跟蹤實時日誌
-
--since string 顯示自某個timestamp之後的日誌,或相對時間,如42m(即42分鐘)
-
--tail string 從日誌末尾顯示多少行日誌, 默認是all
-
-t, --timestamps 顯示時間戳
-
--until string 顯示自某個timestamp之前的日誌,或相對時間,如42m(即42分鐘)
2.1 查看指定時間後的日誌,只顯示最後20行
$ docker logs -f --tail=50 fe65b0dbf0f7
2.2 查看最近10分鐘的日誌
$ docker logs --since 10m fe65b0dbf0f7
2.3 查看某時間段之後的日誌
docker logs -t --since="2023-10-16T08:40:30" fe65b0dbf0f7
2.4 查看某時間段內的日誌
$ docker logs -t --since="2023-10-16T08:40:30" --until "2023-10-16T08:50:50" fe65b0dbf0f7