文档章节

企业级Docker Registry开源工具Harbor的用户使用指南

xingfei
 xingfei
发布于 2017/01/10 13:23
字数 2421
阅读 161
收藏 1

 

摘要: 本文承接上一篇安装和配置,主要讲解一些关于不同角色在使用Harbor中的一些指导帮助。

用户手册

概述

该指导将引导你去使用Harbor的各个功能特性。你将学习到怎样使用Harbor去完成以下任务:

  • 管理你的项目
  • 管理一个项目中的成员
  • 同步一个项目中的registry到远端的registry
  • 检索项目和镜像源
  • 如果你是系统管理员,可以学习如何管理你的Harbor系统:
    • 管理用户
    • 管理目标镜像
    • 管理同步策略(多个registry之间的镜像同步)
  • 使用docker客户端程序上传下载镜像文件(docker pull/push images)
  • 删除仓库和镜像文件

基于角色的访问控制

RBAC (Role Based Access Control)在Harbor中被支持,目前会支持四种具有不同权限的角色:

  • 游客: 游客角色只对一个指定的项目有只读权限。
  • 开发者: 开发者对一个项目具有读写权限
  • 项目管理员: 当创建一个新项目的时候,该用户将被自动分配为项目管理员的角色去管理整个项目。除过读写特权之外,项目管理员也有其他方面的管理特权,比如添加和移除项目成员。
  • 系统管理员系统管理员有着最大的权限,也就是系统默认的admin用户。 除了上述提到权限之外,系统管理员也有所有的项目权限,并且可以将一个普通用户提升成管理员,同时也可以删除用户。系统默认的公开项目library也属于系统管理员。
  • 匿名用户: 当一个用户没有登录的时候,该用户就被认为匿名用户。任何一个匿名用户都无法访问私有的项目,并且对所有的公开项目有只读权限。

用户账户

作为一个用户,可以通过自注册程序去注册一个账户。用户名和邮箱地址必须在Harbor中唯一。密码必须包含至少7个字符,其中必须包含一个大写一个小写以及一个数字字符。

如果管理员已经配置了LDAP/AD作为用户认证源,注册一步可以可以忽略的。LDAP/AD的用户id可以被用来直接登录Harbor。

如果你忘记了自己的密码,可以通过以下步骤进行重置密码:

  1. 在登录页面点击忘记密码
  2. 输入注册时候填写的邮件地址,邮箱将会收到一封修改密码的邮件
  3. 接受到邮件后,点击邮件里面的链接将跳转到密码重置页面
  4. 输入新密码后点击提交即可

管理项目

在Harbor中的一个项目包含一个应用的所有仓库.RBAC(基于角色的权限控制)被应用在一个项目中。在Harbor中分为两种项目公开私有

  • Public: 所有用户对于公开项目都有读权限,这种方式对于你想把一些仓库分享给其他人的时候,是非常方便的.
  • Private: 私有项目只能被有特定用户权限的人去访问。这种方式对于内部团队来说共享也是比较方便的。

在你登录Harbor之后就可以创建项目。点击"Public"复选框将使该项目变成公开项目。

输入图片说明

项目被创建之后,用户就可以浏览仓库,用户以及使用导航标签的一些日志。

输入图片说明

所有的操作日志将被通过点击日志列出来,你可以通过高级搜索中用户名,操作以及日期去搜索相关操作日志:

输入图片说明

管理项目成员

添加成员

你可以使用不同的角色去添加成员到已经存在的项目。

输入图片说明

更新和移除项目成员

你可以通过点击编辑和删除按钮来更新和移除成员。

输入图片说明

镜像复制

如果你是系统管理员,你可以将仓库中的镜像文件同步到远端的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.

© 著作权归作者所有

本文转载自:https://my.oschina.net/xxbAndy/blog/788350

xingfei
粉丝 2
博文 428
码字总数 401593
作品 0
大兴
运维
私信 提问
VMware Harbor registry 安装及使用

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务...

zzimac
2018/09/13
152
0
Docker Registry企业级私有镜像仓库Harbor管理WEB UI, 可能是最详细的部署

摘要:是公司开源的企业级项目,其目标是帮助用户迅速搭建一个企业级的服务。 它以公司开源的为基础,提供了管理,基于角色的访问控制(),集成、以及审计日志() 等企业用户需求的功能,通过添...

souyunku
2018/01/08
0
0
企业级Docker Registry开源工具Harbor的介绍以及使用指南

Harbor 的简介以及基本架构 Harbor简介 基本架构 Harbor安装和配置指导 Harbor 可以使用以下三种方式进行安装部署: 在线安装: 使用者可以直接从docker hub上下载harbor的官方镜像。 离线安装...

Andy-xu
2016/11/12
1K
0
企业级Docker Registry开源工具Harbor的用户使用指南

用户手册 概述 该指导将引导你去使用Harbor的各个功能特性。你将学习到怎样使用Harbor去完成以下任务: 管理你的项目 管理一个项目中的成员 同步一个项目中的registry到远端的registry 检索项...

Andy-xu
2016/11/15
1K
0
Docker 镜像及Docker仓库配置 [四]

Docker 镜像及Docker仓库配置 [四] Docker 镜像及Docker仓库配置 [四] 一、Docker 镜像介绍 Docker镜像构建分为两种,一种是,另一种是Dockerfile() Docker镜像手动构建案例: 我们基于镜像...

Abcdocker
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
22分钟前
4
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
54分钟前
7
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
10
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
14
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部