docker 导致的 inode 爆满问题解决办法

本贴最后更新于 1152 天前,其中的信息可能已经斗转星移

查看 inode

df -hi

1.删除无用 images

docker images -qf dangling=true | xargs docker rmi

2.删除无用 volume

docker volume ls -qf dangling=true |xargs docker volume rm

3. docker system prune

可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(即无 tag 的镜像)。

4.安装 inodes 检查工具

wget -O /bin/inodes https://raw.smyl.es/inodes/master/inodes

chmod +x /bin/inodes

inodes /etc/

5.(慎用)重置

备份数据,重新格式化或者加硬盘,在创建文件系统的时候,指定一个比较大的 inode 数

mkfs -t ext4 -N

6.迁移 docker root 目录, 修改 limit

mkdir -p /home/docker/lib

rsync -avz /var/lib/docker /home/docker/lib/

vim /usr/lib/systemd/system/docker.service

在 ExecStart=/usr/bin/dockerd 后添加 --graph=/home/docker/lib/docker

修改

LimitNOFILE=infinity

LimitNPROC=infinity

LimitNOFILE=1048576

LimitNPROC=1048576

然后

systemctl daemon-reload

systemctl restart docker

docker info 查看修改是否生效 Docker Root Dir: /home/docker/lib/docker

确保没问题后删除/var/lib/docker 文件夹

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...