要查看docker容器日志,最常用的方法是使用docker logs命令。1. 基本用法:通過(guò)docker logs 容器名或id查看容器自啟動(dòng)以來(lái)的所有日志內(nèi)容。2. 實(shí)時(shí)查看日志:使用docker logs -f 容器名持續(xù)輸出新產(chǎn)生的日志內(nèi)容,便于調(diào)試正在運(yùn)行的服務(wù)。3. 查看最近幾行日志:通過(guò)docker logs –tail 10 容器名控制輸出的行數(shù),快速掃一眼是否有錯(cuò)誤信息;也可結(jié)合實(shí)時(shí)查看和尾部日志,執(zhí)行docker logs -f –tail 20 容器名。4. 顯示時(shí)間戳:添加-t參數(shù)顯示每條日志產(chǎn)生的時(shí)間,執(zhí)行docker logs -t 容器名分析問(wèn)題發(fā)生的具體時(shí)刻。此外,日志過(guò)多時(shí)可通過(guò)docker logs 容器名 > app.log導(dǎo)出到文件以便進(jìn)一步分析。掌握這些命令可滿足日常排查容器問(wèn)題的需求。
查看 Docker 容器的運(yùn)行日志,最常用的方式就是使用 docker logs 命令。它能幫助我們快速定位問(wèn)題、了解容器內(nèi)部應(yīng)用的運(yùn)行狀態(tài)。只要你知道容器的名字或 ID,就能通過(guò)這個(gè)命令查看它的輸出日志。
1. 基本用法:查看容器日志
最簡(jiǎn)單的用法是直接加容器名或 ID:
docker logs 容器名或ID
這樣會(huì)輸出該容器自啟動(dòng)以來(lái)的所有日志內(nèi)容。如果你只是想看一下最近發(fā)生了什么,這已經(jīng)夠用了。但如果你運(yùn)行的是一個(gè)長(zhǎng)時(shí)間服務(wù),比如 nginx 或數(shù)據(jù)庫(kù),輸出的日志可能會(huì)很多,建議配合其他參數(shù)使用。
2. 實(shí)時(shí)查看日志(類似 tail -f)
如果你想像看實(shí)時(shí)日志那樣動(dòng)態(tài)查看最新輸出,可以加上 -f 參數(shù):
docker logs -f 容器名
效果類似于 Linux 的 tail -f,會(huì)持續(xù)輸出新產(chǎn)生的日志內(nèi)容。這對(duì)調(diào)試正在運(yùn)行的服務(wù)非常有用,比如你剛部署了一個(gè)應(yīng)用,想看看它啟動(dòng)過(guò)程中有沒有報(bào)錯(cuò)。
3. 查看最近幾行日志(限制輸出行數(shù))
有時(shí)候你只關(guān)心最近的幾條日志,而不是全部?jī)?nèi)容。可以用 –tail 參數(shù)來(lái)控制輸出的行數(shù):
docker logs --tail 10 容器名
上面這條命令只會(huì)顯示最后 10 行日志。這對(duì)于只想快速掃一眼是否有錯(cuò)誤信息的人來(lái)說(shuō)很實(shí)用。
如果想結(jié)合實(shí)時(shí)查看和尾部日志,也可以一起用:
docker logs -f --tail 20 容器名
這樣一開始顯示最近 20 行,然后繼續(xù)實(shí)時(shí)輸出新增日志。
4. 顯示時(shí)間戳(推薦開啟)
默認(rèn)情況下,docker logs 不會(huì)顯示每條日志的時(shí)間。你可以加上 -t 參數(shù)來(lái)顯示時(shí)間戳:
docker logs -t 容器名
輸出結(jié)果中就會(huì)包含每條日志產(chǎn)生的時(shí)間,方便你分析問(wèn)題發(fā)生的具體時(shí)刻。
小提示:日志太多看不過(guò)來(lái)怎么辦?
如果你發(fā)現(xiàn)日志內(nèi)容特別多,甚至影響了排查效率,可以考慮把日志導(dǎo)出到文件里慢慢看:
docker logs 容器名 > app.log
這樣就可以用文本編輯器打開 app.log 文件,進(jìn)行搜索和分析。
基本上就這些常用的參數(shù)了。掌握這幾個(gè)命令,日常排查容器問(wèn)題應(yīng)該就夠用了。