docker log

容器的日志支持多种方式,可以通过配置--log-driver=VALUE来选择不同的驱动方式,包含none, json-file,syslog,journald,gelf,fluentd,awslogs,splunk,etwlogs,gcplogs。

none:顾名思义不会做任何日志输出

json-file:把标准输出日志通过以json格式文件的方式展示出来,这也是docker默认的日志输出方式。

--log-opt max-size=[0-9+][k|m|g] #文件的大小
--log-opt max-file=[0-9+] #文件数量
--log-opt labels=label1,label2 #加入label参数
--log-opt env=env1,env2 #加入env参数

syslog:

把日志以syslog的方式输出

--log-opt syslog-address=[tcp|udp|tcp+tls]://host:port
--log-opt syslog-address=unix://path
--log-opt syslog-address=unixgram://path
--log-opt syslog-facility=daemon
--log-opt syslog-tls-ca-cert=/etc/ca-certificates/custom/ca.pem
--log-opt syslog-tls-cert=/etc/ca-certificates/custom/cert.pem
--log-opt syslog-tls-key=/etc/ca-certificates/custom/key.pem
--log-opt syslog-tls-skip-verify=true
--log-opt tag="mailer"
--log-opt syslog-format=[rfc5424|rfc5424micro|rfc3164]
--log-opt env=ENV1,ENV2,ENV3
--log-opt labels=label1,label2,label3

syslog-address支持通过tcp,udp,tcp+tls的方式进行输出,如果没有指定默认方式是本地unix socket。
--log-opt tag=value 选项中可以配置docker详细信息,例如--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}"

{{.ID}} 12位id
{{.FullID}} 全id
{{.Name}}   容器名称
{{.ImageID}}    12位镜像id
{{.ImageFullID}}    全镜像id
{{.ImageName}}  镜像名称
{{.DaemonName}} 后台进程名称

除此以外还可以通过配置go template的方式来获取container的label和env的信息,例如:

docker run -it --rm \ 
--log-driver syslog \ 
--log-opt tag="{{ (.ExtraAttributes nil).SOME_ENV_VAR }}" \ 
--log-opt env=SOME_ENV_VAR \ 
-e SOME_ENV_VAR=logtester.1234 \ 
flyinprogrammer/logtester

需要特别注意的地方是,如果想获取container的env的信息那么log-opt env=value也必须配置相应的env key,label同样也是如此。
从docker源码中可以看出他的获取方式:

func (ctx *Context) ExtraAttributes(keyMod func(string) string) map[string]string {

extra := make(map[string]string)

labels, ok := ctx.Config["labels"]

if ok && len(labels) > 0 {

for _, l := range strings.Split(labels, ",") {

if v, ok := ctx.ContainerLabels[l]; ok {

if keyMod != nil {

l = keyMod(l)

}

extra[l] = v

}

}

}

env, ok := ctx.Config["env"]

if ok && len(env) > 0 {

envMapping := make(map[string]string)

for _, e := range ctx.ContainerEnv {

if kv := strings.SplitN(e, "=", 2); len(kv) == 2 {

envMapping[kv[0]] = kv[1]

}

}

for _, l := range strings.Split(env, ",") {

if v, ok := envMapping[l]; ok {

if keyMod != nil {

l = keyMod(l)

}

extra[l] = v

}

}

}

return extra

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,290评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,107评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,872评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,415评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,453评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,784评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,927评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,691评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,137评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,472评论 2 326
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,622评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,289评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,887评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,316评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,490评论 2 348

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,629评论 18 139
  • Docker从2013年发布第一个版本以来,已经火遍全球,技术迭代也比较频繁,其周边产品和技术也越来越丰富。Doc...
    归海听雪阅读 12,267评论 7 44
  • 感恩分享:试图以改变外在的世界来追求完美是徒劳无功的。永远会有你意想不到的事情出现,把毫无准备的你激怒。你有多...
    雪域红梅阅读 181评论 0 0
  • 编辑git配置文件 sudo vim .git/config 在后面添加,然后在拉去后输入账号密码即可 [cred...
    lanchc阅读 1,560评论 0 0
  • 那一天,我终于决定去旅行 在小猫的眼睛里,在鸟儿的眼睛里,到处留下我的脚印 于是所有的神秘都向后退,退成...
    一生一世周杰伦阅读 152评论 0 1