资讯专栏INFORMATION COLUMN

从敲下docker logs开始理解docker日志原理

xietao3 / 3287人阅读

摘要:容器日志文件的生命周期是跟随容器而产生的,如果删除了某个容器,相应的日志文件也会随着被删除

参数说明
$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪日志输出,最后一行为当前时间戳的日志
        --since string   显示自具体某个时间或时间段的日志
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
使用方法
$ docker logs 26b12d17fefc
  nohup: appending output to "nohup.out"
  nohup: appending output to "nohup.out"
$ 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"
$ docker logs --tail 1 26b12d17fefc
  nohup: appending output to "nohup.out"
$ docker logs -t --tail 1 26b12d17fefc
  2017-07-03T13:58:54.232003809Z nohup: appending output to "nohup.out"
$ 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://www.ucloud.cn/yun/26954.html

相关文章

  • Docker源码分析之容器日志处理与log-driver实现

    摘要:概要本文将从源码的角度分析怎么将容器的日志收集出来并通过配置的发送出去,并结合示例介绍了好雨云帮中实现的一个。首先根据容器配置的类别调用返回一个方法类型实质就是从工厂类注册的插件去查找,具体源码下文分析。直接接收容器的日志。 概要 本文将从docker(1.12.6)源码的角度分析docker daemon怎么将容器的日志收集出来并通过配置的log-driver发送出去,并结合示例介绍...

    xi4oh4o 评论0 收藏0
  • Docker Daemon生产环境关键的几个参数

    摘要:原文地址一些生产环境中要注意的参数配置。本文介绍一些生产环境中要特别注意的参数,这些参数可以通过在命令行参数形式给,也可以通过在里配置。然后执行来验证配置是否生效。它们的原理就是修改参数。 原文地址 一些docker daemon生产环境中要注意的参数配置。 本文介绍一些生产环境中dockerd要特别注意的参数,这些参数可以通过在dockerd命令行参数形式给,也可以通过在/etc/d...

    mengbo 评论0 收藏0
  • 记一次docker容器化部署

    摘要:事情是这样的一个人程序员,用写了个,写完后不会部署是的,这个人就是我今天真的是要被自己笑死终于有机会在公司项目中使用进行开发,整个开发过程相当亢奋然而当跟前端小哥哥联调完接口后,小哥哥问我什么时候能给线上地址一脸懵忘记还有上线这回事了往往自 事情是这样的 一个人程序员,用golang写了个server,写完后...不会部署 : ) 是的,这个人就是我... 今天真的是要被自己笑死 ...

    saucxs 评论0 收藏0
  • Rancher体系下容器日志采集

    摘要:本文就探讨一下,平台内如何做容器日志收集。当然完整的日志体系中,并不仅仅是采集,还需要有日志存储和展现。是可以理解微的助手,它可以识别容器内的日志卷文件,通知进行采集。 引言 一个完整的容器平台,容器日志都是很重要的一环。尤其在微服务架构大行其道状况下,程序的访问监控健康状态很多都依赖日志信息的收集,由于Docker的存在,让容器平台中的日志收集和传统方式很多不一样,日志的输出和采集点...

    go4it 评论0 收藏0

发表评论

0条评论

xietao3

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<