去评论
海欣资源

docker占用空间大怎么处理

ertfg
2022/05/24 23:20:06
1、处理docker容器日志过大导致的占用磁盘控件的问题
docker容器日志存在位置:/var/lib/docker/containers/container_id,日志文件名称格式为:container_id-json.log

查询docker所有容器日志大小的shell脚本如下:
第一步
vi docker_log_detail.sh

第二步
#!/bin/sh
echo "======== docker containers logs file details ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
do  
        ls -lh $log   
done

第三步
chmod +x docker_log_detail.sh
./docker_log_detail.sh

清理docker所有容器日志的shell脚本如下:
第一步
vi 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配置文件(/etc/docker/daemon.json,如果没有就新建)中,添加如下参数:
第一步
vi /etc/docker/daemon.json

第二步
{
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

第三步
systemctl daemon-reload
systemctl restart docker

参数说明:
        max-size=500m,代表一个容器日志大小上限是500M
        max-file=3,代表一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。