Harbor操作指引

下面以一个具体的例子介绍Harbor的基本操作

1)创建项目: 项目 → 新建项目

管理员提供账号密码之后,用户自行登陆系统创建项目,本案例创建了一个test项目

项目的作用:pull镜像和push镜像都需要指定项目,否则操作不成功

 2)本地docker登陆用户

先输入docker login testing.com,在输入账号密码, 显示Login Succeeded 则登陆成功

登陆报错如下

# docker login testing.com
Username: admin
Password: 
Error response from daemon: Get https://testing.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

报错原因:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是我们搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。

报错解决:

修改Docker的配置文件/etc/docker/daemon.json

加上"insecure-registries":["testing.com"]

# vim /etc/docker/daemon.json 
{
"registry-mirrors": ["https://k728i8z5.mirror.aliyuncs.com"],
"insecure-registries":["testing.com"]
}

  docker服务重启:

systemctl daemon-reload

systemctl restart docker

 3)从本地push镜像到制品库的test项目

a、tag命令修改镜像名称

docker tag nginx testing.com/test/nginx:v1

 必须要按该格式修改才能对应上harbor服务

注:

 nginx 为本地原来的镜像名

 testing.com 为harbor的地址

 test  为harbor中要接收镜像的项目

 v1为上传到harbor的镜像版本号

b、把修改名称以后的镜像push到harbor中

docker push testing.com/test/nginx:v1

上传成功如下: 

若上传的镜像名跟版本号在harbor中已存在,则最新上传的会覆盖原来的镜像,原镜像在harbor中的tag会标空

 c、登陆harbor,在系统中可以看到上传的镜像

  项目→点击test可以查看项目下的所有镜像

4)从制品库pull httpd镜像到本地 

 docker pull testing.com/test/centos:v1

 注:

  testing.com为harbor的地址

  test 为harbor中镜像所在的项目

  centos为镜像名

  v1为镜像的版本号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python来操作Harbor。下面是一个使用Python脚本来删除Harbor仓库中不再需要的镜像的示例: ```python import requests # 设置Harbor的地址和登录信息 harbor_url = 'http://127.0.0.1' username = 'admin' password = 'Harbor12345' # 登录Harbor session = requests.Session() login_url = harbor_url + '/login' session.post(login_url, json={'username': username, 'password': password}) # 获取所有镜像仓库 repositories_url = harbor_url + '/api/v2.0/projects' response = session.get(repositories_url) repositories = response.json() # 遍历每个镜像仓库 for repository in repositories: repository_name = repository['name'] repository_id = repository['project_id'] # 获取仓库中的所有镜像 images_url = harbor_url + f'/api/v2.0/projects/{repository_id}/repositories' response = session.get(images_url) images = response.json() # 遍历每个镜像 for image in images: image_name = image['name'] image_id = image['id'] # 判断镜像是否需要删除,这里假设镜像名包含"old"的都需要删除 if 'old' in image_name: # 删除镜像 delete_url = harbor_url + f'/api/v2.0/projects/{repository_id}/repositories/{image_id}' session.delete(delete_url) print(f'Deleted image: {image_name} in repository: {repository_name}') # 退出登录 logout_url = harbor_url + '/logout' session.post(logout_url) ``` 这个脚本使用了Python的requests库来发送HTTP请求,实现了登录Harbor、获取镜像仓库、获取镜像和删除镜像的功能。你可以根据自己的需求修改判断镜像是否需要删除的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值