限制&&清除容器日志
设置Docker容器日志文件大小限制
1
1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
2
3
# vim /etc/docker/daemon.json
4
5
{
6
"registry-mirrors": [
7
"<https://sucejt9z.mirror.aliyuncs.com>"
8
],
9
"log-driver":"json-file",
10
"log-opts": {"max-size":"200m", "max-file":"3"}
11
}
12
{
13
"log-driver":"json-file",
14
"log-opts": {"max-size":"200m", "max-file":"3"}
15
}
16
17
max-size=200m,意味着一个容器日志大小上限是200M,
18
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。
19
20
21
22
2.然后重启docker的守护线程
23
24
命令如下:
25
26
sudo systemctl daemon-reload
27
sudo systemctl restart docker
28
29
30
【需要注意的是:设置的日志大小规则,只对新建的容器有效】
Copied!
Container Log 預設路徑如下:
*/var/lib/docker/containers/<container-id>/**<container-id>*json.log
可以利用下列指令進行清除。
1
cat /dev/null > <container-id>-json.log
Copied!
設定 Log 文件容量上限
每次都手動清除是件很蠢的事,可以將設定檔放置於 etc/docker/daemon.json,若無此文件,則需額外新增,設定值可參考下列內容:
1
{
2
"log-driver": "json-file",
3
"log-opts": {
4
"max-size": "50m",
5
"max-file": "3"
6
}
7
}
Copied!
接著利用下列指令重新載入,之後建立新的 Container 就會套用了。
1
systemctl daemon-reload
2
3
systemctl restart docker
Copied!
清理 Log Script
如果想使用排程進行 Log 的清理,可將下列 Script 存成 sh 檔後執行。
1
path=/var/lib/docker/containers/
2
echo ""
3
echo "========== Clean Docker Containers Log =========="
4
echo "Path: "$path
5
cd $path
6
for file in $(ls)
7
do
8
if [ -d $file ];then
9
echo $file"-json.log"
10
cat /dev/null > $file/$file-json.log
11
else
12
echo 0
13
fi
14
done
15
echo "========== Clean Docker Containers Log =========="
16
echo ""
Copied!
最近更新 10mo ago
复制链接