最近有同事反馈部署harbor的服务器磁盘空间满了,导致相关服务无法启动。本计划直接扩容,但另一位同事发现将harbor中现有项目各自占用的磁盘空间加在一起,总共占用的空间是没有超过100G的,但目前harbor占用了312G。于是我们决定暂不扩容,而是先清理harbor磁盘空间。
通过以下三个操作,我们成功地清理出了299G的空间。
registry garbage-collect
网上提到最多的方法是用以下命令执行清理。
docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml
此方法,有一些用处,可以尝试运行下。但是需要注意的是,运行上面这行命令之前,需要启动harbor。如果按照很多教程说的先关闭harbor就会导致如下报错:
通过运行这个我们清理出了4G的空间。
harbor自带的清理工具
抱着碰个运气的想法,我在harbor上找到了这个工具,然后尝试运行了一下。没想到效果很好,直接清理出了240G的空间!
docker image prune -a
后来我又想到部署harbor的这台服务器上本身也有不少docker镜像,而且harbor中不少镜像就是在140上构建并推送的。而140上的本地docker镜像与harbor中的镜像是不互相影响的,所以可以删除140上的无用镜像以节约空间,通过docker image prune -a
命令就可以完成。
通过这个方法我们,清理出了接近55G的空间。