您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何理解Docker logs,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
高效的監(jiān)控和日志管理對(duì)保持生產(chǎn)系統(tǒng)持續(xù)穩(wěn)定地運(yùn)行以及排查問題至關(guān)重要。
在微服務(wù)架構(gòu)中,由于容器的數(shù)量眾多以及快速變化的特性使得記錄日志和監(jiān)控變得越來越重要??紤]到容器短暫和不固定的生命周期,當(dāng)我們需要 debug 問題時(shí)有些容器可能已經(jīng)不存在了。因此,一套集中式的日志管理系統(tǒng)是生產(chǎn)環(huán)境中不可或缺的組成部分。
我們將討論監(jiān)控容器的各種可用技術(shù)和方案,首先會(huì)介紹 Docker 自帶的 logs 子命令,然后討論 Docker 的 logging driver,接下來通過實(shí)踐學(xué)習(xí)幾個(gè)已經(jīng)廣泛應(yīng)用的日志管理方案:ELK、Fluentd 和 Graylog。
我們首先來看一看默認(rèn)配置下 Docker 的日志功能。
對(duì)于一個(gè)運(yùn)行的容器,Docker 會(huì)將日志發(fā)送到 容器的 標(biāo)準(zhǔn)輸出設(shè)備(STDOUT)和標(biāo)準(zhǔn)錯(cuò)誤設(shè)備(STDERR),STDOUT 和 STDERR 實(shí)際上就是容器的控制臺(tái)終端。
舉個(gè)例子,用下面的命令運(yùn)行 httpd 容器:
docker run -p 80:80 httpd
因?yàn)槲覀冊(cè)趩?dòng)日志的時(shí)候沒有用 -d
參數(shù),httpd 容器以前臺(tái)方式啟動(dòng),日志會(huì)直接打印在當(dāng)前的終端窗口。
如果加上 -d
參數(shù)以后臺(tái)方式運(yùn)行容器,我們就看不到輸出的日志了。
這種情況下如果要查看容器的日志,有兩種方法:
attach 到該容器。
用 docker logs
命令查看日志。
先來看 attach 的方法。運(yùn)行 docker attach
命令。
attach 到了 httpd 容器,但并沒有任何輸出,這是因?yàn)楫?dāng)前沒有新的日志信息。
為了產(chǎn)生一條新的日志,可以在 host 的另一個(gè)命令行終端執(zhí)行 curl localhost
。
這時(shí),attach 的終端就會(huì)打印出新的日志。
attach 的方法在實(shí)際使用中不太方便,因?yàn)椋?/p>
只能看到 attach 之后的日志,以前的日志不可見。
退出 attach 狀態(tài)比較麻煩(Ctrl+p 然后 Ctrl+q 組合鍵),一不小心很容器將容器殺掉(比如按下 Ctrl+C)。
查看容器日志推薦的方法是用 docker logs
命令。
docker logs
能夠打印出自容器啟動(dòng)以來完整的日志,并且 -f
參數(shù)可以繼續(xù)打印出新產(chǎn)生的日志,效果上與 Linux 命令 tail -f
一樣。
看完上述內(nèi)容,你們對(duì)如何理解Docker logs有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。