#用户手册 ##概述 该指导将引导你去使用Harbor的各个功能特性。你将学习到怎样使用Harbor去完成如下任务:git
##基于角色的访问控制 RBAC (Role Based Access Control)在Harbor中被支持,目前会支持四种具备不一样权限的角色:github
只读
权限。读写
权限项目管理员
的角色去管理整个项目。除过读写
特权以外,项目管理员也有其余方面的管理特权,好比添加和移除项目成员。系统管理员
有着最大的权限,也就是系统默认的admin用户。 除了上述提到权限以外,系统管理员
也有全部的项目权限,而且能够将一个普通用户提高成管理员,同时也能够删除用户。系统默认的公开项目library
也属于系统管理员。只读
权限。##用户帐户 做为一个用户,能够经过自注册程序去注册一个帐户。用户名和邮箱地址必须在Harbor中惟一。密码必须包含至少7个字符,其中必须包含一个大写一个小写以及一个数字字符。web
若是管理员已经配置了LDAP/AD做为用户认证源,注册一步能够能够忽略的。LDAP/AD的用户id能够被用来直接登陆Harbor。redis
若是你忘记了本身的密码,能够经过如下步骤进行重置密码:docker
忘记密码
##管理项目 在Harbor中的一个项目包含一个应用的全部仓库.RBAC(基于角色的权限控制)被应用在一个项目中。在Harbor中分为两种项目公开
和私有
:ubuntu
在你登陆Harbor以后就能够建立项目。点击"Public"复选框将使该项目变成公开项目。dom
项目被建立以后,用户就能够浏览仓库,用户以及使用导航标签的一些日志。学习
全部的操做日志将被经过点击日志
列出来,你能够经过高级搜索中用户名,操做以及日期去搜索相关操做日志:测试
##管理项目成员 ###添加成员 你可使用不一样的角色去添加成员到已经存在的项目。this
###更新和移除项目成员 你能够经过点击编辑和删除按钮来更新和移除成员。
##镜像复制 若是你是系统管理员,你能够将仓库中的镜像文件同步到远端的registry(也就是你的目标Harbor) , 目前只有Harbor实例才支持做为一个目标仓库。所以,要使用镜像复制功能,必须将Harbor在远端从新部署一份
注意: 该镜像复制功能在Harbor 0.3.5以前和和0.3.5版本以后是不兼容的。
在项目主页点击复制
,并点击新增策略
来进行添加镜像复制策略。目标URL即为远端的镜像中心
测试链接成功以后就能够点击肯定进行镜像复制:
能够看到该复制任务正在进行,而且显示当前复制的相关信息。底部会显示该项目的整个复制进度,以及每一个仓库复制的信息。
点击右边的日志能够查看每一个仓库镜像同步的信息详情。
复制完成以后就能够在远端Harbor中看到已经同步过去的项目以及镜像文件。
##检索项目和镜像仓库 在顶部搜索框中输入一个关键字并查询会列出全部匹配的项目和镜像仓库信息。搜索结果包含全部你有权限访问的私有和公开镜像。
##管理员选项 ###管理用户 管理员能够添加管理员
角色给普通用户,以提高权限,固然也能够删除某个用户。
###管理目标(远端Harbor) 用户能够在管理员选项下
的目标
按钮下列出,添加和删除复制策略,以及修改目标Harbor。只有那些不被任何策略引用的目的Harbor才能被修改编辑。
###管理复制 用户能够在管理员选项下
的复制
按钮下列出,编辑和启用或者禁止策略。再编辑策略以前须要确认策略已经被禁掉。
##使用Docker 客户端命令进行pull和push镜像(下载和上传镜像)
注意: Harbor只支持Registry V2的API,所以你的docker客户端版本必须在1.6.0以上才行。
Harbor默认支持的是HTTP,可是Docker客户端默认会使用HTTPS去链接镜像仓库,所以当你pull或push镜像的时候出现如下错误提示:
FATA[0002] Error: Invalid registry endpoint https://localhost.com:5000/v1/: Get https://localhost.com:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry localhost.com:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/localhost.com:5000/ca.crt
你只须要在Docker daemon的启动配置中加入如下参数就可使用了。 --insecure-registry ip:port(regirsty的地址)
在Ubuntu系列中默认配置文件在/etc/default/docker
。 在Centos系列中默认配置文件在/etc/sysconfig/docker
配置示例:
在HTTPS状况下,你须要可以访问registry的CA证书就行,不须要配置额外的参数,通常的证书地址会放在如下位置。 /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt
###下载镜像文件(docker pull images) 若是项目中的镜像文件是私有的,那么首先先登陆再去下载:
$ docker login 172.25.47.67
$ docker pull 172.25.47.67/pandora/pandora-redis:latest
注意: 用户在操做的时候,只须要替换上面的ip地址为harbor.cfg中配置的hostname(域名或者ip).
###上传镜像(docker push images) 在上传镜像以前,必须先在Harbor的web界面上建立一个对应的项目,由于镜像上传上去是存储在对应项目中的。
首先,先使用docker client 登陆: 用户名密码为Harbor上面设置的用户/密码,而且相应的权限和项目是一一对应的,你的用户也只能上传属于你本身项目的镜像。
$ docker login 172.25.47.67
给镜像打tag:
$ docker tag ubuntu:14.04 172.25.47.67/pandora/ubuntu:14.04
上传镜像:
$ docker push 172.25.47.67/pandora/ubuntu:14.04
注意: 用户在操做的时候,只须要替换上面的ip地址为harbor.cfg中配置的hostname(域名或者ip).
##删除镜像仓库
镜像仓库的删除须要执行两步操做:
首先,在Harbor的web界面上删除一个镜像仓库,这是一个软删除,Harbor将不会再管理这个仓库,可是仓库中的镜像都仍是会在registry中存放(Harbor的存储中)。
注意: 若是tagA和tagB都指向相同的image,在删除tagA以后,tagB也会被删除。
接下来,使用registry的垃圾回收机制( garbage collection(GC))去删除文件.在操做GC以前须要肯定没有人正在上传镜像或者Harbor没有运行。若是当GC正在运行中的时候有人正在push镜像,那么会有一些镜像层(images layers)错误删除的风险。所以,在运行GC以前,比较推荐的作法是先停掉Harbor。
在部署Harbor的主机上运行如下命令,能够预览到收到影响的文件或者镜像。
$ docker-compose stop $ docker run -it --name gc --rm --volumes-from deploy_registry_1 registry:2.5.0 garbage-collect --dry-run /etc/registry/config.yml
注意: 上面的参数"--dry-run" 将会打印删除的进度 验证完删除的测试以后,可使用下面的命令进行GC回收,而且重启Harbor。
$ docker run -it --name gc --rm --volumes-from deploy_registry_1 registry:2.5.0 garbage-collect /etc/registry/config.yml $ docker-compose start
有关更多GC的详细信息, 请看链接 GC.