01-Harbor基本功能


Harbor大概有项目、日志、用户管理、仓库管理、同步管理、配置管理和垃圾清理等功能。

项目:就是之前说的镜像仓库,可以创建公开和私有的镜像仓库,公开的项目无需验证即可拉取镜像,但是要推送镜像的话还是需要验证的;私有镜像任何操作都需要验证。

日志:记录用户对项目的所有创建、删除、修改等操作。

用户管理:可以在这里创建新的用户或者修改已有用户的权限,密码重置等。

仓库管理:Harbor支持多个Harbor仓库之间的镜像同步,在仓库管理中可以添加其他的Harbor仓库。

同步管理:用来编写多个Harbor镜像仓库之间的同步规则。以便更好的管理多个Harbor仓库。

配置管理:可以修改Harbor仓库的便签、认证模式、是否允许用户自注册、邮箱服务器配置、创建项目的权限和仓库属性和令牌过期时间等。

垃圾清理:手动或者定时清理Harbor管理的镜像仓库的垃圾文件等。


默认的公开仓库library中,需要推送镜像是需要认证之后才可以的,拉取镜像则无需认证。

关于认证就是需要在Harbor用户管理中添加用户并设置密码,然后在docker客户端中通过docker login harbor.biu2ful.xyz登陆,只有登陆成功之后才算完成了验证。并且不同的Harbor项目只有拥有权限的成员才可以做相关操作。



02-Harbor镜像的push和pull

这里针对Harbor公开项目和私有项目(也就是镜像仓库)对镜像拉取和推送做一下演示:

2.1

公开项目演示

镜像推送

关于公开镜像仓库的镜像推送,可以进到项目中,有相关的镜像推送的说明:

为了检查一下Harbor是否如所说的那样做了基于角色的控制访问,我们先测试一下镜像的推送:

# 1.先给已经构建的镜像打tagdocker tag nginx:v1 harbor.biu2ful.xyz/library/nginx:v1
# 2.通过docker push将打好tag的镜像推送到Harbor的library仓库docker push harbor.biu2ful.xyz/library/nginx:v1


推送失败,那么我们登陆之后看下能否正常推送,首先在Harbor中添加成员并加入library项目中:

添加用户之后,在[项目] -> [library] -> [成员]中添加刚才添加的用户并授予一定的权限:

查看library中是否有这个成员:

在docker客户端中通过docker login harbor.biu2ful.xyz登陆:

然后尝试推送镜像:

还是失败!

登陆之后推送镜像还是是白是因为docker推送镜像到官方镜像仓库之外的其他仓库都bi虚将其加入到信任列表,所以推送镜像之前我们需要先修改docker配置,将Harbor加入到信任名单中,通过docker info可以查看已信任的名单列表:


vim /etc/docker/daemon.json{    registry-mirrors: [https://rrr9h8xt.mirror.aliyuncs.com],    insecure-registries: [harbor.biu2ful.xyz] }

修改完配置之后需要重启docker

systemctl restart docker

重启完之后再次确认是否已经加入了信任列表:

接下来再次推送镜像:

在Harbor的web界面刷新,也可以看到已经推送的镜像:

镜像拉取

删除本地已经打了tag的镜像,然后从Harbor的library中拉取:

docker image rm harbor.biu2ful.xyz/library/nginx:v1docker pull harbor.biu2ful.xyz/library/nginx:v1


当然,公开的镜像仓库的拉取是不需要认证的。


2.2

私有项目演示

创建一个私有项目

在[项目] -> [新建项目]中添加一个私有项目:

创建一个没有该仓库权限的guest账户,用来做对比。

在该项目中添加成员(不是该项目成员的用户是没有权限访问该仓库的):

镜像推送

将镜像打Tag并推送到这个私有仓库(需要docker login登陆之后才可以):


docker tag tomcat:v2 harbor.biu2ful.xyz/private-hub/tomcat:v2docker push harbor.biu2ful.xyz/private-hub/tomcat:v2

在私有项目private-hub中查看:

退出拥有该仓库权限的账号,登陆guest账户来推送:

将本地镜像打tag并推送到privare-hub仓库:

显然没有权限推送镜像。


镜像拉取

先用已登录的guest账户拉取镜像:

docker pull harbor.biu2ful.xyz/private-hub/tomcat:v2


没有权限拉取,然后删除本地对应tag的镜像,换有该仓库权限的账号拉取:

拉取private-hub中的镜像:

首先删除本地已有的harbor.biu2ful.xyz/private-hub/tomcat:v2镜像:

拉取镜像:

OK!拉取成功!


至此,关于Harbor镜像拉取推送和公开私有项目的使用方法大致如此,其他的功能大家可以自己去尝试一下!


©著作权归作者所有:来自51CTO博客作者mb5ff980b461ced的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 一文教您通过 Docker 快速搭建各种测试环境(Mysql, Redis, ES, M
  2. 面试官:说说你之前负责的系统,QPS 能达到多少?
  3. 如何在 Java8 中风骚走位避开空指针异常
  4. Spring Cloud OAuth 微服务内部Token传递的源码实现解析
  5. Spring Cloud Gateway 扩展支持动态限流
  6. Spring Cloud Gateway 扩展支持多版本控制及灰度发布
  7. 基于oauth 2.0 开发第三方开放平台
  8. 扩展 jwt 解决 oauth2 性能瓶颈
  9. 2021年激活码激活PhpStorm全教程

随机推荐

  1. android 最全 各种UI效果 UI框架 github
  2. Android实现透明式状态栏
  3. android 向web服务器发送post请求并获取
  4. android 4.1源码下载方法
  5. eclipse上调试android里的程序。
  6. Android的Notification的简介-android学
  7. Android开发性能优化大总结
  8. Android NDK工程创建与编译运行
  9. Android左右连接和USING
  10. htc g11 hboot 2.02.0000 unlock (androi