场景:

harbor服务器磁盘占用为100%:
听同事说,harbor服务器,不能上传镜像,jenkins不能正常工作。
在这里插入图片描述


问题描述:

最开始以为,docker的日志,占用过多,但是用脚本删除,磁盘仍然占用100%

#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
最后,到harbor的管理界面,去手动删除部分删除其中的冗余docker镜像,回到,linux查看磁盘空间,仍然占用100%。

原因分析:

原来是harbor私有仓库的删除镜像,没有释放空间。查阅资料,发现通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像。需要停止Harbor服务,执行垃圾回收命令,进行存储空间清理和回收。


解决方案:

要启用垃圾回收(GC),首先要关闭Harbor服务,然后再执行清理命令。

关闭Harbor服务

docker stop $(docker ps -a -q)

再执行清理命令

#使用--dry-run参数运行容器,预览运行效果,但不删除任何数据
$ docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect --dry-run /etc/registry/config.yml

# NOTE: The above option "--dry-run" will print the progress without removing any data.
# Verify the result of the above test, then use the below commands to perform garbage collection and restart Harbor.

#不使用--dry-run参数,将删除相关的文件和镜像,
$ docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect  /etc/registry/config.yml

在这里插入图片描述

刷新系统配置

systemctl daemon-reload && systemctl restart docker

重启Harbor相关服务

docker restart $(docker ps -a -q)

在这里插入图片描述

Harbor web界面删除冗余镜像

在这里插入图片描述
在这里插入图片描述

总结

以上步骤,可以循环执行,多释放空间,就多次执行,对其他服务没有伤害。在这里插入图片描述

GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 15 天前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 15 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐