国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

看看程序員如何被 Docker 日志坑慘了

開源
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。

[[426544]]

最近在讀《計算機程序的構造和解釋》,里面有一句話:代碼必須能夠被人閱讀,只是機器恰巧可以執行。

我也想到了一句話:BUG 一定能夠被人寫出,只是恰好我寫的多而已。

說多了都是淚,來看看我最近遇到的一個問題。

問題

普通的一天,打開普通的電腦,登錄一臺普通的服務器,敲下一條普通的命令。

在我使用命令補全時,出現了一條不普通的提示:

  1. -bash: cannot create temp file for here-document: No space left on device ls -bash 

怎么磁盤滿了?

使用 df -h 一看還真是。

什么原因呢?

解決

首先,查找一下系統里的大文件,看看是哪個小可愛搞的鬼。

  1. du -sh /* | grep G 

很快就定位到了這個目錄:/var/lib/docker/containers。

原來是 Docker 這家伙,這個目錄下存放的都是容器運行過程中產生的日志。

使用下面命令來給這些文件按大小排個序:

  1. du -d1 -h /var/lib/docker/containers | sort -h 
  2.  
  3. 32K    /var/lib/docker/containers/d607c06e475191fff1abd0c2b4b672e7fe8a96cb197f4e8557b18600de2e60af 
  4. 36K    /var/lib/docker/containers/0d4321106721b9d26335fefef7b9e8e23629691684a4da2f953ac8223c8240c3 
  5. 36K    /var/lib/docker/containers/7525aab4aa917aa1016169114762261726ac7b9cc712bef35cdc7035b50d20ce 
  6. 36K    /var/lib/docker/containers/9252e1c373d59ef5613c2b6122eb6e43aa2bd822bd2c199aa67d6eb659c4adb7 
  7. 142M    /var/lib/docker/containers 
  8. 142M    /var/lib/docker/containers/15700ee92cd2831554b9a1e78127df0f07248c1498d35c17525407bc8a98bc1a 

文件名稱就是容器 ID,每個文件對應一個容器,也就可以定位到,具體是哪個容器產生了大量的日志。

使用這個命令可以將大文件快速清空:

  1. sh -c "cat /dev/null > ${log_file_name}" 

但是清空了文件哪算解決問題,新的日志還在源源不斷往日志里打呢??戳丝慈罩緝热荩苁煜?。前兩天為了調試程序,剛加的一條 print。

編輯代碼,刪除 print,重啟容器。好了,日志不再瘋狂追加了。

為什么 print 語句將日志都輸出到文件里了呢?別著急,后面再來詳細介紹。

先處理一下眼前的問題,放任日志無限增長是肯定不行的,需要有一個單個文件大小限制。否則,明天張三再加一條 print,磁盤又滿了。

這里有兩個方案:

  1. 單一容器配置
  2. 全局配置

單一容器配置

啟動容器時,通過參數來控制日志的文件個數和單個文件的大?。?/p>

  1. docker run -it --log-opt max-size=10m --log-opt max-file=3 redis 

但這樣做是比較麻煩的,更多的采用的是全局配置的方式。

全局配置

編輯 /etc/docker/daemon.json:

  1.     "log-driver":"json-file"
  2.     "log-opts":{ 
  3.         "max-size" :"50m"
  4.         "max-file":"3" 
  5.     } 

重啟 Docker 服務:

  1. systemctl daemon-reload 
  2. systemctl restart docker 

注意: 已存在的容器不會生效,需要重建才可以。

接下來再說說上文提到的 print 問題。

Docker 日志

Docker 日志分為兩類:

  • Docker 引擎日志(也就是 dockerd 運行時的日志)
  • 容器的日志,容器內的服務產生的日志

引擎日志

Docker 引擎日志一般是交給了 Upstart(Ubuntu 14.04) 或者 systemd (CentOS 7, Ubuntu 16.04)。前者一般位于 /var/log/upstart/docker.log 下,后者一般通過 journalctl -u docker 進行查看。

不同系統的位置都不一樣,網上有人總結了一份列表,我修正了一下,可以參考:

容器日志

使用下面命令可以顯示當前運行的容器的日志信息:

  1. docker logs CONTAINER 

UNIX 和 Linux 命令有三種輸入輸出,分別是 STDIN、STDOUT 和 STDERR。docker logs 顯示的內容包含 STDOUT 和 STDERR。

在生產環境下,如果我們的應用輸出到日志文件里,那么我們在使用 docker logs 時一般收集不到太多重要的信息。

這里來看一下 nginx 和 httpd 是怎么做的:

  • nginx 官方鏡像,使用了一種方式,讓日志輸出到 STDOUT,也就是創建一個符號鏈接 /var/log/nginx/access.log 到 /dev/stdout。
  • httpd 使用的是讓其輸出到指定文件,正常日志輸出到 /proc/self/fd/1 (STDOUT) ,錯誤日志輸出到 /proc/self/fd/2 (STDERR)。

當日志量比較大的時候,使用 docker logs 來查看日志,會對 docker daemon 造成比較大的壓力,容易導致容器創建慢等一系列問題。

只有使用了 local 、json-file、journald 日志驅動的容器才可以使用 docker logs 捕獲日志,使用其他日志驅動無法使用 docker logs。

Docker 默認使用 json-file 作為日志驅動。

除此之外,Docker 還提供了很多其他日志驅動,這里就不過多介紹。還有日志管理方案,我也不是很有經驗,大家如果感興趣的話自己搜搜看吧。

 

責任編輯:姜華 來源: AlwaysBeta
相關推薦

2015-09-16 09:57:41

swoolePHP程序員

2021-07-16 07:57:35

SpringBootOpenFeign微服務

2015-03-18 09:51:45

2025-04-22 03:00:00

模型SpringAI

2024-07-04 11:44:02

2011-10-10 09:22:27

程序員

2018-10-10 15:52:48

程序員代碼編程

2011-09-26 09:52:04

程序員

2024-08-21 08:22:33

2015-04-03 09:38:32

程序員前人挖坑后人填坑

2018-11-01 15:20:17

前端程序員編程語言

2018-02-06 08:36:02

簡歷程序員面試

2020-03-20 08:00:32

代碼程序員追求

2020-12-11 06:49:04

ELK程序員辭退!

2024-03-14 10:30:05

緩存場景DEMO

2018-03-14 13:32:53

程序員C++JAVA

2018-11-22 10:53:30

程序員技能開發者

2014-09-26 09:57:41

程序員讀書書籍

2014-08-15 11:07:09

程序員

2019-12-06 17:31:30

程序員人生第一份工作設計
點贊
收藏

51CTO技術棧公眾號

成人欧美一区| 一区二区三区区四区播放视频在线观看 | 亚洲精品国产精品国自产观看 | 一区二区久久久久久| 成人性教育视频在线观看| 日韩不卡免费高清视频| 色婷婷亚洲综合| 亚洲娇小娇小娇小| 国产69精品一区二区亚洲孕妇 | 亚洲综合视频| 欧美zozozo| 欧美日韩激情视频一区二区三区| 久久久久久久久岛国免费| 日韩三级电影网站| 亚洲国产日韩欧美一区二区三区| 国产成人一区二区三区小说| 高清精品久久| 亚洲深夜福利在线| www555久久| 欧美日韩亚洲高清一区二区| 精品久久久久久| 亚洲综合欧美激情| 91在线精品秘密一区二区| 免费观看成人性生生活片 | 中文字幕日韩高清| 欧美性videos| 亚洲h精品动漫在线观看| 99精品免费在线观看| 久久福利视频一区二区| 精品无人区一区二区三区竹菊 | 日韩精品中文字幕在线播放| 国产免费a∨片在线观看不卡| 综合在线观看色| xxxx一级片| 国产午夜精品久久久久久免费视| 成年丰满熟妇午夜免费视频 | 97在线免费观看| 欧美一级做a| 亚洲人成电影在线观看天堂色| 老司机在线看片网av| 欧美无砖专区一中文字| 色视频在线观看免费| 亚洲电影一级黄| 天海翼女教师无删减版电影| 亚洲欧美激情在线| 精精国产xxxx视频在线动漫| 亚洲婷婷综合色高清在线| 国产成人黄色网址| 亚洲欧美乱综合| 情趣网站在线观看| 日韩欧美在线观看视频| 成人精品一区二区三区免费 | 亚洲精品水蜜桃| 四虎av网址| 一区二区三区小说| 欧美知名女优| 欧美日韩视频不卡| 色呦呦网站在线观看| 日韩精品免费观看| 黑人一区二区三区| 久久久久久久色| 成人国产精品一级毛片视频| 2022国产精品| 日本欧洲一区二区| 国产精品自拍片| 国产精品电影一区二区三区| y4480在线8影院| 欧美日韩五月天| 日韩精品美女| 久久久久国产精品免费网站| 99精品全国免费观看视频软件| 国产精品美女xx| 国产精品综合二区| 69中国xxxxxxxxx69| 91精品1区2区| 在线观看网站免费入口在线观看国内| 另类图片亚洲另类| 国产精品成人一区二区不卡| 欧美日韩精品免费观看| 99久久99久久久精品齐齐| 日本不卡1区2区3区| 欧美一区二区精品| 国产精品成人国产| 国产美女直播视频一区| 人人狠狠综合久久亚洲| 欧美精品成人网| 欧美色中文字幕| 亚洲精品69| 亚洲最大成人网色| 粉嫩av亚洲一区二区图片| 女人黄色片免费| 亚洲成人av在线| 日韩电影在线观看完整免费观看| 精品无人乱码一区二区三区的优势 | 啪啪激情综合网| 国产一区二区黄色| 91视频免费看| 欧美挠脚心网站| 中文字幕久久精品| 精品一区二区三区的国产在线观看| 欧美日韩国产综合视频在线| 国产欧美日韩不卡| 日本在线视频站| 91po在线观看91精品国产性色| 媚黑女一区二区| 国产美女免费观看| 精品伊人久久97| 日韩女优制服丝袜电影| 中文字幕一区二区三区四区久久| 国产亚洲情侣一区二区无| 久久一区二区三区四区| av网站在线免费看推荐| 国产成人精品网站| 99视频国产精品| 欧美aaaaaaa| 成人黄色生活片| 久久久亚洲欧洲日产国码αv| 日本a在线播放| 国产精品久久电影观看| 波多野结衣在线一区| 国产精品刘玥久久一区| 日韩美女在线播放| 91麻豆swag| 中文一区一区三区高中清不卡免费| 成人免费视频网| 中文欧美字幕免费| 全亚洲第一av番号网站| 欧美精品久久久| 色综合久久久网| 自拍视频一区| 黄色一级免费大片| 伊人伊成久久人综合网站| 久久精品动漫| 国产片在线观看| 国产精品极品在线| 久久亚洲春色中文字幕久久久| 黄毛片在线观看| 你懂的网址一区二区三区| 精品国产成人在线| 日韩大片在线永久免费观看网站| 国产欧美久久久久| 深爱激情综合网| 国产精品-区区久久久狼| 精品久久久久久久久久久院品网 | 亚洲老头老太hd| 国产精品嫩草视频| 日本久久久久久久| 另类小说第一页| 超碰97久久国产精品牛牛| xxxx一级片| 久久久久久久久久久久久久久久av| 国产日产欧美a一级在线| 欧美激情视频给我| 亚洲一二三四久久| 国产原创一区二区三区| jizzjizz亚洲| 狠狠色丁香婷婷综合| 老司机在线看片网av| 成人免费无遮挡| 亚洲狼人综合| 99精品综合| 全部av―极品视觉盛宴亚洲| 国产老妇另类xxxxx| 成人丝袜视频网| 亚洲同性同志一二三专区| 亚洲国产精品t66y| 国产精品久久久久久久久久妞妞| 麻豆网站在线| 最新黄色片网站| 日本丰满大乳奶| 久久99久久精品国产| 欧美亚洲一区在线| 亚洲欧美日韩成人| 久久99久久精品| 玖玖玖免费嫩草在线影院一区| 妞干网2018| 精品一区久久久| 亚洲成人av片| 国产电影一区二区三区| 日韩av中文字幕一区| 成人xxx免费视频播放| 欧美国产一二三区| 国产999精品久久久| 亚洲综合自拍一区| 色99中文字幕| 18加网站在线| 77成人影视| 狠狠色伊人亚洲综合成人| 欧美日韩亚洲成人| 欧美精品黑人性xxxx| 亚洲裸体xxxx| 91久久爱成人| 男裸体无遮挡网站| 国产日韩欧美高清免费| 久久中文在线| 欧美日韩中文字幕综合视频| 欧美日韩国产123| 久久夜色精品国产噜噜av| 免费人成在线观看播放视频| 国产精品麻豆|