docker 导致磁盘空间不够的处理

1.排查

du -h --max-depth=1 /var/lib/docker/lib/containers

通过查询文件大小。确定大文件所在位置/var/lib/docker/containers

 

2.为什么出现这情况

经过查阅资料,这个里面存放了容器运行的日志,推测是之前进行压测,导致容器有大量日志。最终造成磁盘爆满。(运行时间长也会导致此问题)

 

3.开始处理

1.修改docker容器的默认存放地址,可以从系统盘移到数据盘

systemctl stop docker 
systemctl status docker 

//创建要新存放的地址
mkdir /data/docker/lib
mv /var/lib/docker/* /data/docker/lib


//修改docker配置。将路径指向新地址
vi /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd后 追加 --graph /data/docker/lib



//重启docker
systemctl disable docker
systemctl enable docker 
systemctl daemon-reload
systemctl start docker 

//查看新地址,是否生效
docker info|grep Dir

//查看容器状态,看到目录都已经改过来了
docker inspect 容器id

 

 

2.修改docker容器的日志大小

//方案一:
//创建一个docker全局文件。用来防止容量过大,针对新容器有效---ps:这个没测试过,不知道会不会生效
vi /etc/docker/daemon.json
// reload配置文件
{
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"100m","max-file":"3"
    }
}

//查看新地址,是否生效
docker info|grep Dir

//查看容器状态,看到目录都已经改过来了
docker inspect 容器id


方案二(适合单个容器进行处理):
应用启动命令加上以下参数: --log-opt max-size=100m --log-opt max-file=3 去限制docker内日志大小
docker run -d --log-opt max-size=100m --log-opt max-file=3 --net=host --privileged=true --name lhwtest -it -v /home/docker/app/lhw:/home/docker/app/lhw lhwtest //下面对日志进行清理。不清理也是可以的。看情况 docker inspect --format '{{.LogPath}}' 34dbe42d30ae docker inspect --format '{{.LogPath}}' 4e51b0d2fcf2 sudo sh -c "cat /dev/null > /data/docker/lib/containers/34dbe42d30ae92f2a2f4798409fc8792ebb1d2275b87e19879f204f2bf4706c2/34dbe42d30ae92f2a2f4798409fc8792ebb1d2275b87e19879f204f2bf4706c2-json.log" sudo sh -c "cat /dev/null > /data/docker/lib/containers/4e51b0d2fcf24a249aed7d0f5f03c8bb9b5419ce11a16635b1fffd8dc95eb7ea/4e51b0d2fcf24a249aed7d0f5f03c8bb9b5419ce11a16635b1fffd8dc95eb7ea-json.log" docker inspect --format '{{.LogPath}}' 1804f2271770 docker inspect --format '{{.LogPath}}' 0acab853a70f sudo sh -c "cat /dev/null > /data/docker/lib/containers/1804f22717701db640292159e692b5d4ed646687b7eeb6dc59b48135fefff41a/1804f22717701db640292159e692b5d4ed646687b7eeb6dc59b48135fefff41a-json.log" sudo sh -c "cat /dev/null > /data/docker/lib/containers/0acab853a70fe5d6cfd1ccee198155d33752fe9b05b260587be325f16d06ca1b/0acab853a70fe5d6cfd1ccee198155d33752fe9b05b260587be325f16d06ca1b-json.log"

 

posted @ 2021-08-20 10:32  林被熊烟岛  阅读(654)  评论(0编辑  收藏  举报