如何清空docker日志

如何清空docker日志

1、找出docker容器日志

在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log結尾的文件(業務日志)很大,查看各個日志文件大小的腳本docker_log_size.sh,內容如下:

#!/bin/sh echo?"========?docker?containers?logs?file?size?========" logs=$(find?/var/lib/docker/containers/?-name?*-json.log) for?log?in?$logs do 	ls?-lh?$log done

執行如下命令:

#?chmod?+x?docker_log_size.sh #?./docker_log_size.sh

2、清理Docker容器日志

如果docker容器正在運行,那么使用rm -rf方式刪除日志后,通過df -h命令會發現磁盤空間并沒有釋放。

原因是在Linux或者Unix系統中,通過rm -rf或者文件管理器刪除文件,將會從文件系統的目錄結構上解除鏈接(unlink)。如果文件是被打開的(有一個進程正在使用),那么進程將仍然可以讀取該文件,磁盤空間也一直被占用。

正確方法是cat /dev/null > *-json.log,當然你也可以通過rm -rf刪除后重啟docker。接下來,提供一個日志清理腳本clean_docker_log.sh,內容如下:

#!/bin/sh echo?"========?start?clean?docker?containers?logs?========" logs=$(find?/var/lib/docker/containers/?-name?*-json.log) for?log?in?$logs do 	echo?"clean?logs?:?$log" 	cat?/dev/null?>?$log done echo?"========?end?clean?docker?containers?logs?========

然后執行如下命令:

#?chmod?+x?clean_docker_log.sh #?./clean_docker_log.sh

推薦教程:docker教程

以上就是如何清空

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享