Docker Harbor使用详解

1、项目

项目包含了一个应用的所有仓库,项目未被创建之前镜像不能推送到Harbor。只有被授权的用户才可以对该项目进行操作。

Harbor中有两种项目类型:

  • 公开: 任何用户都可以从这个项目中拉取镜像
  • 私有: 仅项目成员可以从这个项目中拉取镜像
1.1、新建项目
项目->新建项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qvHtp8Kg-1614673980642)(404389716D7142F5BC3B78317C39FA3A)]

项目创建成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Rh4synF-1614673980644)(75C80B5C4AF64FEF8125FF1C7B8ED71E)]

1.2、指派用户

如果用户不存在,则先创建用户。点击“系统管理->用户管理->新建用户”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gk5u53NF-1614673980645)(7979A440ED1542969830B3E101772F0D)]
录入用户信息,点击“确定”,创建用户
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XQd6G1ns-1614673980647)(1D951CC9055E49BDAE7E7E9A39D6917D)]
用户创建成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wivvT1zW-1614673980648)(31C3590221144E7B9FFB81823F3D9969)]
选择一个项目,选择成员页签,点击“用户”
在这里插入图片描述
输入用户,选择用户角色,点击“确定”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgeISAPl-1614673980650)(4FF028A9C44641CE824506D07B259B65)]
角色详细权限

https://goharbor.io/docs/1.10/administration/managing-users/user-permissions-by-role/

总体来说角色权限分为访客、开发者、管理者。

  • 访客: 用于拉取镜像
  • 开发者:用于拉取镜像用于拉取、推送镜像
  • 管理者:用于管理平台。
1.3、修改角色或移除用户

选择用户,点击“其他操作”可以对该用户进行角色修改或从项目中移除该用户
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1HipgkmZ-1614673980651)(E91F6207A8B9459DA4CC320B4FEA940E)]

1.4、配置管理

在配置管理页签中,可以对该项目访问级别、部署安全、漏洞扫描等进行配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hbTk9xng-1614673980652)(143B32882DBC4CF68E7F346EEFD275FF)]

1.5、镜像仓库

在镜像仓库页签中,点击“推送命令”可以看到Docker推送命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AA2C5HpN-1614673980653)(8883FF30E3604537A7CD34CD4371426F)]

1.6、推送镜像
登录仓库
[root@localhost ~]# docker login 127.0.0.1:4443
Username: dev_user
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
标记本地仓库
[root@localhost ~]# docker tag 4a97d3158956 127.0.0.1:4443/itmrl_pub/helloworld:1.0.0
[root@localhost ~]# docker images
REPOSITORY                                               TAG                 IMAGE ID            CREATED             SIZE
helloworld                                               1.0.0               4a97d3158956        3 days ago          659MB
127.0.0.1:4443/itmrl_pub/helloworld            1.0.0               4a97d3158956        3 days ago          659MB
推送镜像
[root@localhost ~]# docker push 127.0.0.1:4443/itmrl_pub/helloworld:1.0.0
The push refers to repository [127.0.0.1:4443/itmrl_pub/helloworld]
7ecd0eab9c73: Pushed 
35c20f26d188: Pushed 
c3fe59dd9556: Pushed 
6ed1a81ba5b6: Pushed 
a3483ce177ce: Pushed 
ce6c8756685b: Pushed 
30339f20ced0: Pushed 
0eb22bfb707d: Pushed 
a2ae92ffcd29: Pushed 
1.0.0: digest: sha256:74ed6579c9e1e874fe73da2a50e1b0e15dc78a67de533aa0c39facf3bfbba296 size: 2212

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qyPFDQrc-1614673980653)(A55A65CF1CB04E898D10B4F38E1515FD)]

1.7、拉取镜像
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 a70d36bc331a        6 weeks ago         449MB
mysql               latest              c8562eaf9d81        6 weeks ago         546MB
tomcat              latest              040bdb29ab37        6 weeks ago         649MB
tomcat              8.5.32              5808f01b11bf        2 years ago         463MB
java                8                   d23bdf5b1b1b        4 years ago         643MB
[root@localhost ~]# docker pull xxx.com.cn:4443/itmrl_pub/helloworld:1.0.0
1.0.0: Pulling from itmrl_pub/helloworld
7448db3b31eb: Already exists 
c36604fa7939: Already exists 
29e8ef0e3340: Already exists 
a0c934d2565d: Already exists 
a360a17c9cab: Already exists 
cfcc996af805: Already exists 
2cf014724202: Already exists 
4bc402a00dfe: Already exists 
353d55df259a: Pull complete 
Digest: sha256:74ed6579c9e1e874fe73da2a50e1b0e15dc78a67de533aa0c39facf3bfbba296
Status: Downloaded newer image for xxx.com.cn:4443/itmrl_pub/helloworld:1.0.0
xxx.com.cn:4443/itmrl_pub/helloworld:1.0.0
[root@localhost ~]# docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
xxx.com.cn:4443/itmrl_pub/helloworld   1.0.0               4a97d3158956        3 days ago          659MB
mysql                                           5.7                 a70d36bc331a        6 weeks ago         449MB
mysql                                           latest              c8562eaf9d81        6 weeks ago         546MB
tomcat                                          latest              040bdb29ab37        6 weeks ago         649MB
tomcat                                          8.5.32              5808f01b11bf        2 years ago         463MB
java                                            8                   d23bdf5b1b1b        4 years ago         643MB
修改项目访问权限为私有,再次拉取
[root@localhost ~]# docker pull 127.0.0.1:4443/itmrl_pub/helloworld:1.0.0
Error response from daemon: unauthorized: unauthorized to access repository: itmrl_pub/helloworld, action: pull: unauthorized to access repository: itmrl_pub/helloworld, action: pull
登录后再次拉取
[root@localhost ~]# docker login 127.0.0.1:4443
Username: dev_user
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost ~]# docker pull 127.0.0.1:4443/itmrl_pub/helloworld:1.0.0
1.0.0: Pulling from itmrl_pub/helloworld
7448db3b31eb: Already exists 
c36604fa7939: Already exists 
29e8ef0e3340: Already exists 
a0c934d2565d: Already exists 
a360a17c9cab: Already exists 
cfcc996af805: Already exists 
2cf014724202: Already exists 
4bc402a00dfe: Already exists 
353d55df259a: Pull complete 
Digest: sha256:74ed6579c9e1e874fe73da2a50e1b0e15dc78a67de533aa0c39facf3bfbba296
Status: Downloaded newer image for 127.0.0.1:4443/itmrl_pub/helloworld:1.0.0
127.0.0.1:4443/itmrl_pub/helloworld:1.0.0
2、日志

日志功能可以查看操作的日志

3、系统管理
3.1、用户管理

维护系统用户

3.2、分布式分发
3.3、标签

创建标签,用于给镜像打标签

3.4、项目定额

项目定额功能可以设置项目默认的磁盘空间及每个项目的磁盘空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HOHE7qjg-1614673980654)(C1A6BDA9359749D883816E9CFDDD8126)]

3.5、垃圾回收

可以手工或定时执行垃圾回收
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eRMf2R5g-1614673980655)(DFD0A46389484CFA9CCFD4CC6C1CDBE6)]
同时查看垃圾回收的记录和详细日志

回收记录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WAFml4Sa-1614673980656)(0A4F56A81D874C11ABB0962BD43AF75F)]
详细日志
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z03JyMcK-1614673980657)(7A50AB2CB25A4E43AE0A3C3CB41CF7F1)]

3.6、配置管理

认证模式

默认认证模式为数据库认证,即用户认证凭证存储在本地数据库。如果使用LDAP来认证用户,则设置为LDAP。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MqAG8Mma-1614673980657)(CFA915857A914BF4AEDC60E4A0C36BC8)]
允许自注册

开启自注册功能后可以在登录界面自己注册用户。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ttYHNega-1614673980658)(0699C82844F64EDDBB65FBC213D3717D)]
配置邮箱服务器

邮箱服务器用于给重置密码的用户发送邮件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6TKIhOVE-1614673980659)(3296077C395B46CBB90E6799EBD53583)]
按照官方介绍,当用户发起密码修改会发送邮件,但是目前测试并没有发送。在官方Issues中查找可以发现有相关的回复如下:

在这里插入图片描述
在v2.2版本中email配置可能会被移除,当前功能并没有使用。

项目创建

用户确定哪些用户有权限创建项目,默认为“所有人”。设置为“仅管理员”则只有管理员可以创建项目。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W4gKJNvy-1614673980660)(D323DD1956FF4D8F82FA6CAC1D183341)]
仓库只读

Harbor被设置为只读模式,在此模式下,不能删除仓库、artifact、 Tag 及推送镜像。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IIaN7qrZ-1614673980660)(40E4BFA6EB024924962806B271E02823)]

4、日志

日志根路径

/var/log/harbor
GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 21 小时前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 1 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐