harbor 的版本为 1.5.2

为 Harbor 配置 swagger

官网参考: https://github.com/goharbor/harbor/blob/v1.5.2/docs/configure_swagger.md

cd /iba/software/harbor

wget https://raw.githubusercontent.com/goharbor/harbor/master/docs/prepare-swagger.sh https://raw.githubusercontent.com/goharbor/harbor/master/docs/swagger.yaml

vi prepare-swagger.sh
#修改 SERVER_IP
SERVER_IP=192.168.0.241 chmod +x prepare-swagger.sh
./prepare-swagger.sh vi docker-compose.yml
# 在 - /data/ca_download/:/etc/ui/ca/:z 后添加下面两行
- ../src/ui/static/vendors/swagger-ui-2.1.4/dist:/harbor/static/vendors/swagger
- ../src/ui/static/resources/yaml/swagger.yaml:/harbor/static/resources/yaml/swagger.yaml docker-compose down -v && docker-compose up -d

通过浏览器访问 http://192.168.0.241/static/vendors/swagger/index.html

# 获取镜像
curl -X GET --header 'Accept: application/json' 'http://192.168.0.241/api/search?q=library'

#获取镜像仓库的 tags,红色框框处就是 tags
curl -X GET --header 'Accept: application/json' 'http://192.168.0.241/api/repositories/library%2Ftomcat/tags'

# 删除镜像仓库的 tags
curl -X DELETE -H 'Accept: text/plain' -u admin:Harbor12345 "http://192.168.0.241/api/repositories/library/redis/tags/2018-10-29_17-39" # 删除镜像的 tags 时,可以通过 curl 获取返回值来判断成功与否
curl -X DELETE -H 'Accept: text/plain' -u admin:Harbor12345 -o /dev/null -s -w %{http_code} "http://192.168.0.241/api/repositories/library/redis/tags/2018-10-29_17-39" # HTTP Status Code 返回码说明
200 Delete tag successfully.
400 Invalid repo_name.
401 Unauthorized.
403 Forbidden.
404 Repository or tag not found.

附上自动清理 harbor tags 的脚本,这里删除多余的 tags,保留9个,可在下面脚本配置,打 tag 的时候可以按照日期命名,例如:2018-10-29_17-39 这可以方便用下面的脚本进行删除操作

#!/bin/bash
URL="http://192.168.0.241"
USER="admin"
PASS="Harbor12345"
PRO="library"
HARBOR_PAHT="/iba/harbor" # 软删除 harbor tags
del_tags()
{
echo "软删除 ${rp}/${t}"
curl -X DELETE -H 'Accept: text/plain' -u ${USER}:${PASS} "${URL}/api/repositories/${rp}/tags/${t}" } # 硬删除 harbor tags
har_del_tags()
{
cd ${HARBOR_PAHT}
docker-compose -f docker-compose.yml -f docker-compose.clair.yml stop
docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml
docker-compose -f docker-compose.yml -f docker-compose.clair.yml start
} # 获取 project id
PID=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/projects"|grep -w -B 2 "${PRO}" |grep "project_id"|awk -F '[:, ]' '{print $7}')
#echo ${PID} # 拿获取到的 projects_id 获取 repositories
REPOS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories?project_id=${PID}"|grep "name"|awk -F '"' '{print $4}')
for rp in ${REPOS}
do
echo ${rp} TAGS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories/${rp}/tags"|grep \"name\"|awk -F '"' '{print $4}'|sort -r |awk 'NR > 9 {print $1}') for t in ${TAGS}
do
echo ${t}
del_tags
done echo "===================="
done har_del_tags

Harbor api 操作的更多相关文章

  1. 转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...

  2. hive-通过Java API操作

    通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 package org.admln.hive; import java.sql.SQLException; i ...

  3. Hadoop学习记录(3)|HDFS API 操作|RPC调用

    HDFS的API操作 URL方式访问 package hdfs; import java.io.IOException; import java.io.InputStream; import java ...

  4. HBase 6、用Phoenix Java api操作HBase

    开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ...

  5. hadoop2-HBase的Java API操作

    Hbase提供了丰富的Java API,以及线程池操作,下面我用线程池来展示一下使用Java API操作Hbase. 项目结构如下: 我使用的Hbase的版本是 hbase-0.98.9-hadoop ...

  6. 使用Java API操作HDFS文件系统

    使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...

  7. HBase API操作

    |的ascII最大ctrl+shift+t查找类  ctrl+p显示提示 HBase API操作 依赖的jar包 <dependencies> <dependency> < ...

  8. MSComm控件与Win32 API操作串口有何区别?

    MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell]   收藏帖子 回复 我是一个小兵,在战场上拼命!   结帖率 83.33% 我以前用MSCo ...

  9. Hbase Shell命令详解+API操作

    HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...

随机推荐

  1. Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏

    最近开发过程中,需要将同一份工程编译成两个版本,分别为ReleaseA和ReleaseB. ReleaseB比ReleaseA少了部分功能,所以希望在编译的时候,根据不同的版本编译工程中相应的代码. ...

  2. delphi如何在form显示出来后处理指定的事件(例如自动登录)

    最近写一个delphi客户端,遇到一个自动登录问题,已经解决了思路如下: 1.在Form的oncreate事件中读取用户配置文件,检查及处理是否保存了用户密码,是否自动登录,如果需要自动登录, 自动登 ...

  3. ASP.NET MVC下使用AngularJs语言(八):显示html

    在Angularjs显示html文本,如果按照一般处理它.它只能页中显示没经解释文本. 在ASP.NET MVC添加一个控制器: 创建angularjs控制器: pilotApp.controller ...

  4. Linux下MySQL的简单操作

    Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...

  5. Java 8 停止维护,Java 9 难产,IDEA 2018 发布,还有……

    祝大家五一劳动节快乐,工作顺利! 又到了总结上个月干货的时候了,这个月我们带来了各种Java技术干货,各种送书抽奖福利,各种面试题分享,各种最新动态资讯等. 5.1重磅活动 | 区块链免费送书 &am ...

  6. HoloLens开发手记 - 入门学习阶段总结

    伴随着数月的期待,终于拿到了预订的HoloLens开发者版本套件.随着VR/AR/MR技术的热潮,国内外均对它们的应用与盈利前景持有积极的预期,这也直接导致了国内外当前投资VR/AR/MR技术的热潮. ...

  7. C# DataGridView 在最左侧显示行号方法

    代码: private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { Da ...

  8. Xamarin.Android 调用本地相册

    调用本地相册选中照片在ImageView上显示 代码: using System; using System.Collections.Generic; using System.Linq; using ...

  9. 课程四(Convolutional Neural Networks),第四 周(Special applications: Face recognition & Neural style transfer) —— 1.Practice quentions

    [解释] This allows us to learn to predict a person’s identity using a softmax output unit, where the n ...

  10. Docker总结(脑图图片)