前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker logs 查看实时日志(日志最后的N行、某刻后日志)

Docker logs 查看实时日志(日志最后的N行、某刻后日志)

作者头像
微风-- 轻许--
发布2019-08-14 14:14:04
21.1K0
发布2019-08-14 14:14:04
举报
文章被收录于专栏:java 微风

docker logs :

代码语言:javascript
复制
docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1

edu_web_1 为容器名,也可用容器 id 。

参数说明

代码语言:javascript
复制
docker logs [OPTIONS] CONTAINER

Options:

--details 显示更多的信息

-f, --follow 实时输出日志,最后一行为当前时间戳的日志

--since string 输出日志开始日期,即只输出指定日期之后的日志。

--tail string 显示最后多少行日志, 默认是all
            (如: -tail=10 : 查看最后的 10 行日志。)

-t, --timestamps 显示时间戳

使用方法

代码语言:javascript
复制
docker logs 26b12d17fefc

输出日志内容:

nohup: appending output to 'nohup.out'

nohup: appending output to 'nohup.out'
代码语言:javascript
复制
docker logs -t 26b12d17fefc

输出日志内容:

2017-07-03T12:12:29.909710295Z nohup: appending output to 'nohup.out'

2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out'
代码语言:javascript
复制
docker logs --tail 1 26b12d17fefc

输出日志内容:

nohup: appending output to 'nohup.out'
代码语言:javascript
复制
docker logs -t --tail 1 26b12d17fefc

输出日志内容:

2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out'
代码语言:javascript
复制
docker logs --since 30m 26b12d17fefc

输出日志内容:

nohup: appending output to 'nohup.out'




docker logs -t --since="2017-07-03T13:58:54.232003809Z" 26b12d17fefc

输出日志内容:

2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out'




docker logs -t --since="2017-07-03T12:12:29.909710295Z" 26b12d17fefc

输出日志内容:

2017-07-03T12:12:29.909710295Z nohup: appending output to 'nohup.out'

2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out'

容器日志的输出形式

  • stdout 标准输出
  • stderr 标准错误
  • 以json格式存放在容器对于到日志文件中

docker日志内容类型

  • docker自身运行时Daemon的日志内容
  • docker容器的日志内容

docker logs的实现原理

“Docker Daemon是Docker架构中一个常驻在后台的系统进程,它在后台启动了一个Server,Server负责接受Docker Client发送的请求;接受请求后,Server通过路由与分发调度,找到相应的Handler来执行请求。–《Docker源码分析》”

当我们输入 docker logs 的时候会转化为 Docker Client 向 Docker Daemon 发起请求,。

Docker Daemon 在运行容器时会去创建一个协程(goroutine),绑定了整个容器内所有进程的标准输出文件描述符。

因此容器内应用的所有只要是标准输出日志,都会被 goroutine 接收。

Docker Daemon 会根据容器 id 和日志类型读取日志内容,最终会输出到用户终端上并且通过 json 格式存放在/var/lib/docker/containers目录下。

容器日志文件的生命周期

docker logs是跟随容器而产生的,如果删除了某个容器,相应的日志文件也会随着被删除。

转自:https://segmentfault.com/a/1190000010086763

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年07月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • docker logs :
    • 参数说明
      • 使用方法
        • docker日志内容类型
          • docker logs的实现原理
            • 容器日志文件的生命周期
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档