最近有学员遇到了一个棘手问题:
他在云上搭建了一台 Harbor 私有镜像仓库,由于没有绑定公网 IP,也没装 Windows 或桌面环境,Harbor 搭建完成后没有图形界面,导致无法通过浏览器访问和管理镜像。虽然通过 API 创建项目没问题,但仓库里的镜像查看、删除完全没法操作。
这就很头疼了!

这位同学的环境如下:
其实 Harbor 本质上是一个支持 RESTful API 的服务,即使没有 Web UI,我们仍可以通过 curl 命令实现项目管理、镜像查看和删除等操作。
以下是我用来帮学员解决问题的命令操作:
① 查看所有项目
curl -u admin:Harbor12345 -X GET "https://192.168.40.62/api/v2.0/projects" -k返回 JSON 列表,获取项目名。如下:

命令解释说明:

比如项目名是 alpine:
curl -u admin:Harbor12345 -X GET "https://192.168.40.62/api/v2.0/projects/alpine/repositories" -k返回结果如下:

③ 获取镜像的 Digest(用于删除)
curl -u admin:Harbor12345 -X GET "https://192.168.40.62/api/v2.0/projects/alpine/repositories/alpine/artifacts" -k返回如下:

从返回中复制你要删除的镜像的 digest 值。
curl -u admin:Harbor12345 -X DELETE "https://192.168.40.62/api/v2.0/projects/alpine/repositories/alpine/artifacts/sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3" -k再次查看:
curl -u admin:Harbor12345 -X GET "https://192.168.40.62/api/v2.0/projects/alpine/repositories/alpine/artifacts" -k返回[]空列表,说明镜像已经删除。
Harbor 删除镜像只是“逻辑删除”,如果你想真正释放磁盘空间,还需要手动触发一次 垃圾回收 GC,这通常在 Harbor 主机上操作:
这次问题虽小,但很典型。在真实生产中,很多企业的 Harbor 镜像仓库也未必开放公网访问,或者处于内网隔离环境。掌握 API 调用和命令行方式,对我们 DevOps 工程师而言,是非常重要的生存技能。
👉 没图形界面不怕,命令行+API 就能搞定!
如果你也在学习 Kubernetes、Python 运维、云原生,不妨试着自己搭一个 Harbor,练习这些命令,哪天也许你就能帮团队解决类似问题!
END
本文分享自 DevOps和k8s全栈技术 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!