您的位置:首頁技術文章
文章詳情頁

docker logs-查看docker容器日志的實現

瀏覽:66日期:2024-11-03 15:08:21

通過docker logs命令可以查看容器的日志。

命令格式:

$ docker logs [OPTIONS] CONTAINER Options: --details 顯示更多的信息 -f, --follow 跟蹤實時日志 --since string 顯示自某個timestamp之后的日志,或相對時間,如42m(即42分鐘) --tail string 從日志末尾顯示多少行日志, 默認是all -t, --timestamps 顯示時間戳 --until string 顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鐘)例子:

查看指定時間后的日志,只顯示最后100行:

$ docker logs -f -t --since='2018-02-08' --tail=100 CONTAINER_ID

查看最近30分鐘的日志:

$ docker logs --since 30m CONTAINER_ID

查看某時間之后的日志:

$ docker logs -t --since='2018-02-08T13:23:37' CONTAINER_ID

查看某時間段日志:

$ docker logs -t --since='2018-02-08T13:23:37' --until '2018-02-09T12:23:37' CONTAINER_ID

補充:Docker容器的調試技巧:docker logs 與 docker service logs

調試容器

不少剛接觸Docker的同學,通常面對docker容器起不來,或者一直在重復啟動中不知措施。

docker提供了一系列簡單命令,很容易調試容器運行中的問題。

原理很簡單,就是可以直接輸出容器運行時(或過去式的)的日志。

通常有4種方式:

docker run (控制臺上啟動容器)

docker exec (附加進入后臺容器)

docker logs

docker service logs

下面依次介紹之

控制臺啟動容器

打個比如調試啟動redis容器

docker run -it -rm redis redis-server [redis 啟動參數略...]

這樣redis-server的日志輸出直接打印到控制臺上

缺點是,這種方式僅供啟動容器調試時使用,無法操作后臺運行中的容器,或已失效的容器。

docker exec 附加進入后臺容器

有時候需要進入容器內,查看系統運行狀況。這時候可以使用docker exec。

使用docker exec的前提是容器在運行中。因此當容器不能正常工作時,往往無法使用該命令

docker logs

實際上docker容器不管處于什么狀態,都可以使用docker logs獲取 容器的所有日志。

docker logs [容器名]

docker logs還有局限性,即無法獲取docker swarm模式下,啟動失敗的容器日志

docker service logs

針對docker swarm模式,獲取容器日志的命令。

一般,依次執行下列命令,得到某服務的容器名

docker service lsdocker service ps [服務名]

然后就可以通過容器名,獲取其日志了

docker service logs [容器名]

docker service logs顯示日志為空

要讓 docker service logs 正常工作,需要設置docker一些配置

vi /etc/docker/daemon.json

給該文件添加:

{ 'log-driver': 'json-file', 'log-opts': { 'labels': 'production_status,geo', 'env': 'os,customer' }}

然后重啟docker

service docker restart

關于docker service logs的詳細介紹,可以參考官方文檔

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Docker
相關文章:
国产综合久久一区二区三区