docker 清理 /var/lib/docker/aufs 目录

内网服务器上一直用 Docker 来 build 镜像,来进行持续发布,使用一段时间之后,会生成很多文件,如果不及时清理,会占据大量的 inode,虽然磁盘没满,但是无法分配 inode,也会导致一些命令不可用。

查看 inode 数量命令

df -i

如何锁定目录

如果是 / 根目录占满了,怎么确认是哪个子目录呢?使用这条命令依次深入目录执行,查看计算结果,最终就会确认下是哪个目录。

for i in *; do echo $i; find $i | wc -l; done

最后发现是 /var/lib/docker/aufs/diff 这个目录,直接删除 aufs 目录下所有文件,删除 base 镜像,然后重启 docker 服务,清理结束。

cd /var/lib/docker/aufs
rm -r *
docker rmi [你的基础镜像 ID]
service docker restart

不用担心,重启之后会自动重建 diff 目录。
再次执行 df -i 的时候,inode 的百分比已经降下来了。

附加一些批量操作命令:

批量删除镜像

docker images | awk '{print $3}' | xargs docker rmi

批量删除容器

docker ps -a | awk '{print $1}' | xargs docker rm

参考链接:
https://segmentfault.com/q/1010000003106521

评论

  1. 免费网上赚钱
    免费网上赚钱

    不错,很实用的技巧

    回复