docker logs 日志原理
?
參數(shù)說(shuō)明
$ docker logs [OPTIONS] CONTAINER Options:--details 顯示更多的信息-f, --follow 跟蹤日志輸出,最后一行為當(dāng)前時(shí)間戳的日志--since string 顯示自具體某個(gè)時(shí)間或時(shí)間段的日志--tail string 從日志末尾顯示多少行日志, 默認(rèn)是all-t, --timestamps 顯示時(shí)間戳使用方法
$ docker logs 26b12d17fefcnohup: appending output to 'nohup.out'nohup: appending output to 'nohup.out' $ docker logs --tail 1 26b12d17fefcnohup: appending output to 'nohup.out' $ docker logs -t --tail 1 26b12d17fefc2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out' $ docker logs --since 30m 26b12d17fefcnohup: appending output to 'nohup.out' $ docker logs -t --since="2017-07-03T13:58:54.232003809Z" 26b12d17fefc2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out' $ docker logs -t --since="2017-07-03T12:12:29.909710295Z" 26b12d17fefc2017-07-03T12:12:29.909710295Z nohup: appending output to 'nohup.out'2017-07-03T13:58:54.232003809Z nohup: appending output to 'nohup.out'容器日志的輸出形式
-
stdout 標(biāo)準(zhǔn)輸出
-
stderr 標(biāo)準(zhǔn)錯(cuò)誤
-
以json格式存放在容器對(duì)于到日志文件中
docker日志內(nèi)容類型?
-
docker自身運(yùn)行時(shí)Daemon的日志內(nèi)容
-
docker容器的日志內(nèi)容
docker logs的實(shí)現(xiàn)原理?
“Docker Daemon是Docker架構(gòu)中一個(gè)常駐在后臺(tái)的系統(tǒng)進(jìn)程,它在后臺(tái)啟動(dòng)了一個(gè)Server,Server負(fù)責(zé)接受Docker Client發(fā)送的請(qǐng)求;接受請(qǐng)求后,Server通過(guò)路由與分發(fā)調(diào)度,找到相應(yīng)的Handler來(lái)執(zhí)行請(qǐng)求。–《Docker源碼分析》”
?當(dāng)我們輸入docker logs的時(shí)候會(huì)轉(zhuǎn)化為Docker Client向Docker Daemon發(fā)起請(qǐng)求,Docker Daemon 在運(yùn)行容器時(shí)會(huì)去創(chuàng)建一個(gè)協(xié)程(goroutine),綁定了整個(gè)容器內(nèi)所有進(jìn)程的標(biāo)準(zhǔn)輸出文件描述符。因此容器內(nèi)應(yīng)用的所有只要是標(biāo)準(zhǔn)輸出日志,都會(huì)被 goroutine 接收,Docker Daemon會(huì)根據(jù)容器id和日志類型讀取日志內(nèi)容,最終會(huì)輸出到用戶終端上并且通過(guò)json格式存放在/var/lib/docker/containers目錄下。
容器日志文件的生命周期
docker logs是跟隨容器而產(chǎn)生的,如果刪除了某個(gè)容器,相應(yīng)的日志文件也會(huì)隨著被刪除
總結(jié)
以上是生活随笔為你收集整理的docker logs 日志原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Apache Flink 零基础入门(九
- 下一篇: SpringBoot指定服务项目名