企业级Docker镜像仓库Harbor部署与使用
admin
2023-04-02 08:42:09
0次

在实际生产运维中,往往需要把镜像发布到几十、上百台或更多的节点上。这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我们需要一个像Git仓库一样系统来统一管理镜像。这里介绍的是一个企业级镜像仓库Harbor,将作为我们容器云平台的镜像仓库中心。

Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。 


官方地址:
https://vmware.github.io

Github:https://github.com/goharbor/harbor


企业级Docker镜像仓库Harbor部署与使用

1、Harbor主要功能

  • 基于角色访问控制(RBAC)

    在企业中,通常有不同的开发团队负责不同的项目,镜像像代码一样,每个人角色不同需求也不同,因此就需要访问权限控制,根据角色分配相应的权限。 
    例如,开发人员需要对项目构建这就用到读写权限(push/pull),测试人员只需要读权限(pull),运维一般管理镜像仓库,具备权限分配能力,项目经理具有所有权限。 

  • 镜像复制

    可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能。

  • LDAP

    Harbor支持LDAP认证,可以很轻易接入已有的LDAP。

  • 镜像删除和空间回收

    Harbor支持在Web删除镜像,回收无用的镜像,释放磁盘空间。

  • 图形页面管理

    用户很方面搜索镜像及项目管理。

  • 审计

    对仓库的所有操作都有记录。

  • REST API

    完整的API,方便与外部集成。

2、Harbor组件


组件功能
harbor-adminserver配置管理中心
harbor-dbMysql数据库
harbor-jobservice负责镜像复制
harbor-log记录操作日志
harbor-uiWeb管理页面和API
nginx前端代理,负责前端页面和镜像上传/下载转发
redis会话
registry镜像存储

3、Harbor部署

环境要求:

企业级Docker镜像仓库Harbor部署与使用


Harbor安装有3种方式:

  • 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小

  • 离线安装:安装包包含部署的相关镜像,因此安装包比较大

  • OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor

我们采用离线安装,首先下载离线安装包:https://github.com/vmware/harbor/releases

HTTP方式部署

基本配置:

企业级Docker镜像仓库Harbor部署与使用

准备配置文件:

# ./prepare


安装并启动Harbor:


# ./install.sh


查看运行状态:


企业级Docker镜像仓库Harbor部署与使用


部署完成,是不是很简单呢! 

如果有非Up状态,先看日志:

# ls /var/log/harbor/

adminserver.log  jobservice.log  mysql.log  proxy.log  redis.log  registry.log  ui.log


HTTPS方式部署:

如果想以https加密方式提供服务可以参考这个免费的视频教程:https://ke.qq.com/course/311382
或者参考官方文档:https://github.com/vmware/harbor/blob/master/docs/configure_https.md 

4、登录Web页面


浏览器输入:http://10.206.240.188

账号:admin  

密码:Harbor12345


企业级Docker镜像仓库Harbor部署与使用

这里有4个项目,library是默认自带的,通常用这个存储一些公共的镜像,这个项目下镜像谁都可以pull,但不能push,push需要先登录。其他3个项目是我自己创建的,请忽略。

5、library项目赋予新用户push权限

先创建一个用户:

企业级Docker镜像仓库Harbor部署与使用

进入library项目,将用户加入这个成员:

企业级Docker镜像仓库Harbor部署与使用

这样lizhenliang用户就具备了对这个library项目的push权限。 
注:创建新项目赋予用户权限同等方式。

7、上传镜像

接下来将刚才构建的镜像推送到Harbor仓库,先看看我们要推送的镜像:

企业级Docker镜像仓库Harbor部署与使用

在推送之前,需要注意第一列,这个完整格式是:

企业级Docker镜像仓库Harbor部署与使用

如果镜像只放在本地存储REPOSITORY写什么都可以,但推送到镜像仓库就必须指定仓库中心地址。 

所以,先打重命名REPOSITORY,其实就是引用源镜像标记了一个目标镜像:

企业级Docker镜像仓库Harbor部署与使用

访问拒绝,刚说过,push需先登录:

企业级Docker镜像仓库Harbor部署与使用

8、下载镜像

其他Docker主机怎么下载刚推送的镜像呢? 
由于我们搭建的Harbor是以HTTP提供服务的,而Docker CLI默认以HTTPS 访问仓库,所以要先配置可信任,否则pull镜像仓库失败。如果是HTTPS提供服务就不用配置这一步了。

企业级Docker镜像仓库Harbor部署与使用

pull的地址跟push时是一样的。


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...