暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Harbor的基本使用

运维小菜鸡 2019-05-24
945

Harbor的基本使用


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.先给已经构建的镜像打tag
    docker 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:v1
            docker pull harbor.biu2ful.xyz/library/nginx:v1


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


            2.2

            私有项目演示

            创建一个私有项目

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

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

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

            镜像推送

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

              docker tag tomcat:v2 harbor.biu2ful.xyz/private-hub/tomcat:v2
              docker 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镜像拉取推送和公开私有项目的使用方法大致如此,其他的功能大家可以自己去尝试一下!

                文章转载自运维小菜鸡,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论