docker logs-查看docker容器日志的實(shí)現(xiàn)
通過(guò)docker logs命令可以查看容器的日志。
命令格式:
$ docker logs [OPTIONS] CONTAINER
Options:
--details 顯示更多的信息
-f, --follow 跟蹤實(shí)時(shí)日志
--since string 顯示自某個(gè)timestamp之后的日志,或相對(duì)時(shí)間,如42m(即42分鐘)
--tail string 從日志末尾顯示多少行日志, 默認(rèn)是all
-t, --timestamps 顯示時(shí)間戳
--until string 顯示自某個(gè)timestamp之前的日志,或相對(duì)時(shí)間,如42m(即42分鐘)
例子:
查看指定時(shí)間后的日志,只顯示最后100行:
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分鐘的日志:
$ docker logs --since 30m CONTAINER_ID
查看某時(shí)間之后的日志:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某時(shí)間段日志:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
補(bǔ)充:Docker容器的調(diào)試技巧:docker logs 與 docker service logs
調(diào)試容器
不少剛接觸Docker的同學(xué),通常面對(duì)docker容器起不來(lái),或者一直在重復(fù)啟動(dòng)中不知措施。
docker提供了一系列簡(jiǎn)單命令,很容易調(diào)試容器運(yùn)行中的問(wèn)題。
原理很簡(jiǎn)單,就是可以直接輸出容器運(yùn)行時(shí)(或過(guò)去式的)的日志。
通常有4種方式:
docker run (控制臺(tái)上啟動(dòng)容器)
docker exec (附加進(jìn)入后臺(tái)容器)
docker logs
docker service logs
下面依次介紹之
控制臺(tái)啟動(dòng)容器
打個(gè)比如調(diào)試啟動(dòng)redis容器
docker run -it -rm redis redis-server [redis 啟動(dòng)參數(shù)略...]
這樣redis-server的日志輸出直接打印到控制臺(tái)上
缺點(diǎn)是,這種方式僅供啟動(dòng)容器調(diào)試時(shí)使用,無(wú)法操作后臺(tái)運(yùn)行中的容器,或已失效的容器。
docker exec 附加進(jìn)入后臺(tái)容器
有時(shí)候需要進(jìn)入容器內(nèi),查看系統(tǒng)運(yùn)行狀況。這時(shí)候可以使用docker exec。
使用docker exec的前提是容器在運(yùn)行中。因此當(dāng)容器不能正常工作時(shí),往往無(wú)法使用該命令
docker logs
實(shí)際上docker容器不管處于什么狀態(tài),都可以使用docker logs獲取 容器的所有日志。
docker logs [容器名]
docker logs還有局限性,即無(wú)法獲取docker swarm模式下,啟動(dòng)失敗的容器日志
docker service logs
針對(duì)docker swarm模式,獲取容器日志的命令。
一般,依次執(zhí)行下列命令,得到某服務(wù)的容器名
docker service ls docker service ps [服務(wù)名]
然后就可以通過(guò)容器名,獲取其日志了
docker service logs [容器名]
docker service logs顯示日志為空
要讓 docker service logs 正常工作,需要設(shè)置docker一些配置
vi /etc/docker/daemon.json
給該文件添加:
{
"log-driver": "json-file",
"log-opts": {
"labels": "production_status,geo",
"env": "os,customer"
}
}
然后重啟docker
service docker restart
關(guān)于docker service logs的詳細(xì)介紹,可以參考官方文檔
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
docker-swarm教程之安全保護(hù)加密數(shù)據(jù)的方法詳解
默認(rèn)情況下,集群管理器使用的raft 算法的日志在磁盤(pán)上加密,這種靜態(tài)加密可保護(hù)服務(wù)配置和數(shù)據(jù)免受訪問(wèn)加密Raft日志的攻擊者的攻擊,因此引入了Docker secret功能,來(lái)保證加密文件的安全,本文將給大家詳細(xì)的介紹一下如何安全的保護(hù)加密數(shù)據(jù)2023-08-08
Docker容器應(yīng)用中,10個(gè)要不得的壞習(xí)慣
這篇文章主要介紹了Docker容器的應(yīng)用中,10個(gè)要不得的壞習(xí)慣,幫助大家更好的理解和使用docker,感興趣的朋友可以了解下2020-08-08
使用Docker容器運(yùn)行Mysql實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于使用Docker容器運(yùn)行Mysql的相關(guān)資料,助大家更好的理解和學(xué)習(xí)使用docker,感興趣的朋友可以了解下,需要的朋友可以參考下2023-09-09
解決docker容器重啟之后/etc下某些配置文件被重置的問(wèn)題
這篇文章主要介紹了解決docker容器重啟之后/etc下某些配置文件被重置的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Docker部署Nuxt.js項(xiàng)目的實(shí)現(xiàn)
這篇文章主要介紹了Docker部署Nuxt.js項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Intellij IDEA快速實(shí)現(xiàn)Docker鏡像部署的方法步驟
本文主要介紹了Intellij IDEA快速實(shí)現(xiàn)Docker鏡像部署的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
在docker容器中elasticsearch的導(dǎo)入導(dǎo)出方式
文章詳細(xì)介紹了如何使用Docker拉取Elasticsearch鏡像,并導(dǎo)出和導(dǎo)入索引數(shù)據(jù),還討論了在Elasticsearch?Head中解決請(qǐng)求頭顯示不正確的問(wèn)題,包括從容器中復(fù)制文件、編輯文件和將文件回傳到容器2025-11-11
docker部署vue項(xiàng)目的實(shí)現(xiàn)步驟
當(dāng)我們?cè)诒镜亻_(kāi)發(fā)了一個(gè)vue項(xiàng)目之后,肯定是想部署到服務(wù)器上供其他人訪問(wèn),本文主要介紹了docker部署vue項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

