docker日志存儲(chǔ)位置刺洒,設(shè)置docker容器日志大小

docker日志存儲(chǔ)位置

在Linux系統(tǒng)中docker啟動(dòng)后日志存儲(chǔ)在/var/lib/docker/containers/容器ID/目錄中僻肖,啟動(dòng)一個(gè)容器后掀亩,容器ID目錄中會(huì)生成如下文件:

-rw-r----- 1 root root 10325 Nov 16 14:09 12f7f218aa3ba42cf58e3a77ab7ff615c3b06cb04c8d2f22561592c2ea2d3126-json.log
drwx------ 2 root root  4096 Nov 16 14:07 checkpoints
-rw------- 1 root root  3664 Nov 16 14:07 config.v2.json
-rw-r--r-- 1 root root  1514 Nov 16 14:07 hostconfig.json
-rw-r--r-- 1 root root    13 Nov 16 14:07 hostname
-rw-r--r-- 1 root root   174 Nov 16 14:07 hosts
drwx------ 2 root root  4096 Nov 16 14:07 mounts
-rw-r--r-- 1 root root   108 Nov 16 14:07 resolv.conf
-rw-r--r-- 1 root root    71 Nov 16 14:07 resolv.conf.hash

每個(gè)容器的日志默認(rèn)都會(huì)以 json-file 的格式存儲(chǔ)于/var/lib/docker/containers/<容器id>/<容器id>-json.log 下,不過并不建議去這里直接讀取內(nèi)容锻离,因?yàn)槿萜鞯娜罩緞t可以通過 docker logs命令來訪問铺峭,而且可以像 tail -f 一樣,使用 docker logs -f 來實(shí)時(shí)查看汽纠。如果使用 Docker Compose卫键,則可以通過 docker-compose logs <服務(wù)名> 來查看。

docker容器日志導(dǎo)致磁盤空間爆滿

從上面可以知道docker容器日志存儲(chǔ)在文件中虱朵,容器銷毀后/var/lib/docker/containers/<容器id>/目錄會(huì)被自動(dòng)刪除莉炉,所以容器日志也被一并刪除。如果容器一直運(yùn)行并且一直產(chǎn)生日志碴犬,容器日志會(huì)導(dǎo)致磁盤空間爆滿絮宁,如何解決這個(gè)問題?

設(shè)置docker容器日志大蟹(全局設(shè)置)

新建/etc/docker/daemon.json绍昂,若有就不用新建了。添加log-dirver和log-opts參數(shù)偿荷,如下:

# vim /etc/docker/daemon.json

{
  "registry-mirrors": ["http://f613ce8f.m.daocloud.io"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}
  • max-size=500m治专,意味著一個(gè)容器日志大小上限是500M
  • max-file=3,意味著一個(gè)容器最多有三個(gè)日志遭顶,分別是:容器id-json.log张峰、容器id-json.log.1、容器id-json.log.2, 當(dāng)日志文件的大小達(dá)到500m時(shí)棒旗,自動(dòng)劃分文件保存喘批,最多劃分3個(gè)文件
  • 這兩個(gè)參數(shù)設(shè)置之后說明撩荣,一個(gè)容器最多保存1500m(3 * 500)日志,超過范圍的日志不會(huì)被保存饶深,文件中保存的是最新的日志餐曹,文件會(huì)自動(dòng)滾動(dòng)更新。
# 重啟docker守護(hù)進(jìn)程
systemctl daemon-reload
# 重啟docker
systemctl restart docker

注意:設(shè)置的日志大小敌厘,只對新建的容器有效台猴。

設(shè)置完成之后,需要?jiǎng)h除容器俱两,并重新啟動(dòng)容器饱狂,我們可以看到/var/lib/docker/containers/<容器id>/hostconfig.json文件的變化如下:
設(shè)置log-opts之前:

cat hostconfig.json
# 其中的LogConfig如下
"LogConfig": {
    "Type": "json-file",
    "Config": {}
}

設(shè)置log-opts之后:

cat hostconfig.json
# 其中的LogConfig如下
"LogConfig": {
    "Type": "json-file",
    "Config": {
        "max-file": "3",
        "max-size": "500m"
    }
}

k8s中的容器日志

在k8s集群中docker容器日志/var/lib/docker/containers/容器ID/目錄的文件如下:

-rw-r----- 1 root root  27K Oct 30 19:45 830b17595b2c5cac86e9294b00e90d90e867d7d67489b4e4ee47f847d4726efb-json.log
drwx------ 2 root root 4.0K Oct 30 19:44 checkpoints
-rw------- 1 root root  24K Oct 30 19:44 config.v2.json
-rw-r--r-- 1 root root 2.1K Oct 30 19:44 hostconfig.json
drwx------ 2 root root 4.0K Oct 30 19:44 mounts

與docker容器目錄相比少了一些文件:hostname、hosts宪彩、resolv.conf休讳、resolv.conf.hash
k8s通過sandbox(pause容器,關(guān)于pause容器的介紹可以查閱資料)關(guān)聯(lián)了這些文件尿孔,通過查看cat config.v2.json可以發(fā)現(xiàn)如下配置:

"HostnamePath": "/var/lib/docker/containers/27c9b0c0d1d7c8c7db515f96d5ae8c50ef7aeea02ecddcaa6546ea233dc5445c/hostname",
"HostsPath": "/var/lib/kubelet/pods/88f3a665-fdd1-4ad5-b0e0-0b613f762b4c/etc-hosts",
"ShmPath": "/var/lib/docker/containers/27c9b0c0d1d7c8c7db515f96d5ae8c50ef7aeea02ecddcaa6546ea233dc5445c/mounts/shm",
"ResolvConfPath": "/var/lib/docker/containers/27c9b0c0d1d7c8c7db515f96d5ae8c50ef7aeea02ecddcaa6546ea233dc5445c/resolv.conf",

使用命令cat /var/lib/docker/containers/<容器id>/hostconfig.json查看hostconfig.json的內(nèi)容俊柔,發(fā)現(xiàn)有如下設(shè)置:

{
    "Binds": [
        "/var/lib/kubelet/pods/e268cba1-95c6-4c16-904c-6be0b70344ea/volumes/kubernetes.io~secret/default-token-7vpxg:/var/run/secrets/kubernetes.io/serviceaccount:ro",
        "/var/lib/kubelet/pods/e268cba1-95c6-4c16-904c-6be0b70344ea/etc-hosts:/etc/hosts",
        "/var/lib/kubelet/pods/e268cba1-95c6-4c16-904c-6be0b70344ea/containers/demo/eee5300c:/dev/termination-log"
    ],
    "ContainerIDFile": "",
    "LogConfig": {
        "Type": "json-file",
        "Config": {
            "max-file": "10",
            "max-size": "100m"
        }
    },
    "NetworkMode": cd "container:ab24db5934f3a0153d9deb3c2de054c87148c3919f1bc2b1d2c11c4c8a2c8c57",
    "PortBindings": null,
    //其他參數(shù)沒有列出來
    ......
    ......
}

說明一個(gè)容器中日志文件的大小最大為100m,最多10個(gè)文件活合,一個(gè)容器的日志最多保存1000m日志數(shù)據(jù)

查看/etc/docker/daemon.json發(fā)現(xiàn)有如下配置:

cat /etc/docker/daemon.json 
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "10"
    }
}

下面列出了一個(gè)容器的日志文件達(dá)到設(shè)置值的情況:

total 927M
drwx------ 2 root root 4.0K Sep  9 14:51 checkpoints
-rw------- 1 root root  24K Sep  9 14:51 config.v2.json
-rw-r----- 1 root root  69M Nov 16 14:21 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log
-rw-r----- 1 root root  96M Nov 16 07:24 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.1
-rw-r----- 1 root root  96M Nov 15 21:49 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.2
-rw-r----- 1 root root  96M Nov 15 12:04 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.3
-rw-r----- 1 root root  96M Nov 15 02:21 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.4
-rw-r----- 1 root root  96M Nov 14 16:47 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.5
-rw-r----- 1 root root  96M Nov 14 07:11 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.6
-rw-r----- 1 root root  96M Nov 13 21:35 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.7
-rw-r----- 1 root root  96M Nov 13 11:57 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.8
-rw-r----- 1 root root  96M Nov 13 02:21 f627a603df6e162645d6e29ad27b379b1b92607ea3a95667bcfcd851d9695f38-json.log.9
-rw-r--r-- 1 root root 2.2K Sep  9 14:51 hostconfig.json
drwx------ 2 root root 4.0K Sep  9 14:51 mounts

參考文檔:
Docker 日志都在哪里雏婶?怎么收集?
Docker容器日志查看與清理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末白指,一起剝皮案震驚了整個(gè)濱河市尚骄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侵续,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憨闰,死亡現(xiàn)場離奇詭異状蜗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鹉动,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門轧坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泽示,你說我怎么就攤上這事缸血。” “怎么了械筛?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵捎泻,是天一觀的道長。 經(jīng)常有香客問我埋哟,道長笆豁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮喻旷,結(jié)果婚禮上尖殃,老公的妹妹穿的比我還像新娘偷溺。我一直安慰自己,他們只是感情好照筑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘦陈,像睡著了一般凝危。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上双饥,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天媒抠,我揣著相機(jī)與錄音,去河邊找鬼咏花。 笑死趴生,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昏翰。 我是一名探鬼主播苍匆,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棚菊!你這毒婦竟也來了浸踩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤统求,失蹤者是張志新(化名)和其女友劉穎检碗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體码邻,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡折剃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了像屋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怕犁。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖己莺,靈堂內(nèi)的尸體忽然破棺而出奏甫,到底是詐尸還是另有隱情,我是刑警寧澤凌受,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布阵子,位于F島的核電站,受9級(jí)特大地震影響胜蛉,放射性物質(zhì)發(fā)生泄漏款筑。R本人自食惡果不足惜智蝠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奈梳。 院中可真熱鬧杈湾,春花似錦、人聲如沸攘须。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽于宙。三九已至浮驳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捞魁,已是汗流浹背至会。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谱俭,地道東北人奉件。 一個(gè)月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像昆著,于是被迫代替她去往敵國和親县貌。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容