Docker容器日誌打滿機器的解決方式
阿新 • • 發佈:2021-06-11
Docker容器日誌打滿機器的解決方式
在我們使用Docker容器啟動服務時,常常會由於容器內的日誌過多導致把宿主機的磁碟打滿。
本文主要講解如何解決容器日誌打滿磁碟的問題。
容器日誌目錄
首先,我們來講一下容器日誌的位置。如果你的磁碟已經被容器日誌所打滿,則需要找到對應的日誌並進行刪除。
預設情況下,每個容器的日誌預設都會以json-file的格式儲存於 /var/lib/docker/containers/<容器id>/<容器id>-json.log
檔案中。
如果你的磁碟已經被日誌打滿,此時可以清除該檔案來釋放空間。需要注意的是,不建議直接使用rm
命令刪除日誌檔案,因為在某些情況下,rm
一種推薦的刪除方式如下:
echo " ">/var/lib/docker/containers/<容器id>/<容器id>-json.log
docker配置檔案中配置日誌資訊
上述方法總是治標不治本。為了解決該問題,我們希望能直接限制容器日誌的大小。
限制容器日誌的方式分為全侷限制和單個容器限制。我們首先來說明如下進行全侷限制。
建立/修改/etc/docker/daemon.json
該檔案,在該檔案中增加如下配置:
{
"log-driver":"json-file",
"log-opts":{"max-size":"1g","max-file"
}
此時,表示全侷限制所有容器的預設日誌配置為json-file格式且最大限制為1G。
docker容器啟動命令中配置日誌資訊
有時,我們希望僅僅針對單個容器進行限制,那麼此時方式如下:
在docker run
的容器啟動命令中新增如下引數:
--log-opt max-size=1g--log-opt max-file=1
compose檔案中配置日誌資訊
很多時候,我們啟動容器不是通過docker run
進行挨個啟動,而是通過compose
進行統一的管理。
此時,我們同樣可以在compose的配置檔案中進行容器日誌的限制。
一個示例如下:
version:"2"
services
mysql:
image: mysql
logging:
driver:"json-file"
options:
max-size:"1g"
評論前請先登入
登入 註冊