harbor 接口查询
打开harbor api的 swagger.yaml文件
https://github.com/goharbor/harbor/blob/master/docs/swagger.yaml
复制到 swagger 的在线编辑器里即可
ajax 调用harbor api删除镜像
调用harbor api需要用户认证,注意下边的headers,使用了最基本的认证,btoa()函数的作用是编码为base64 (atob()为解码)
function delHarborImg(tag) {
$.ajax({
url: "ip:port/api/repositories/ever/web-svc/tags/" + tag,
async: false,
type: "DELETE",
headers: {
"Authorization": "Basic " + btoa("admin:123456")
},
success: function (result) {
console.info("harbor delete success");
},
error: function (result) {
alert("删除harbor镜像失败,请联系管理员");
}
});
}
harbor垃圾回收(物理清理)
无论通过接口或者web界面删除镜像,都只是软删除,虽然查询不到,但是镜像文件还是保存在磁盘上,因此需要通过以下方法进行垃圾回收,清理释放磁盘
#进入导harbor yaml文件所在目录
cd /usr/local/src/harbor
#停止harbor
docker-compose stop
#使用清理镜像进行垃圾回收
#使用--dry-run 参数进行预览,不使用则进行清理
docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml
#重新启动harbor
docker-compose start
对比删除后的目录大小
du -sh /data/registry/docker/registry/v2/blobs
du -sh /data/registry/docker/registry/v2/repositories
评论区