共计 4126 个字符,预计需要花费 11 分钟才能阅读完成。
这篇文章主要介绍企业级 Docker Registry 开源工具 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。
如果你忘记了自己的密码,可以通过以下步骤进行重置密码:
在登录页面点击忘记密码
输入注册时候填写的邮件地址,邮箱将会收到一封修改密码的邮件
接受到邮件后,点击邮件里面的链接将跳转到密码重置页面
输入新密码后点击提交即可
## 管理项目 在 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
以上是“企业级 Docker Registry 开源工具 Harbor 怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!