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教學
以上是如何清空docker日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!