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

1.排查

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

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

2.为什么出现这情况

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

3.开始处理

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全局文件。用来防止容量过大---ps:这个没测试过,不知道会不会生效
vi /etc/docker/daemon.json
// reload配置文件
{
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"50000m","max-file":"3"
    }
}

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

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

//查看容器状态,看到目录都已经改过来了
docker inspect 容器id //下面对日志进行清理。不清理也是可以的。看情况 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"
原文地址:https://www.cnblogs.com/linhongwenBlog/p/15165335.html