企业级私有仓库,镜像仓库harbor(代码片段)

author author     2023-05-03     290

关键词:

Harbor 简介

Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器, 通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。 作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。 Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控。 另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Harbor 是由 VMware 中国研发团队负责开发的开源企业级 Docker Registry, 不仅解决了我们直接使用 Docker Registry 的功能缺失, 更解决了我们在生产使用 Docker Registry 面临的高可用、镜像仓库直接复制、镜像仓库性能等运维痛点。

Harbor 特性

(1)基于角色的访问控制 :用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
(2)镜像复制 : 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
(3)图形化用户界面 : 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
(4)AD/LDAP 支持 : Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
(5)审计管理 : 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
(6)国际化 : 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
(7)RESTful API : RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
(8)部署方便 : 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。

Harbor在架构上主要由6个组件构成:

(1)Proxy:Harbor的registry, UI, token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。
(2)Registry: 负责储存Docker镜像,并处理docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token, Registry会通过公钥对token 进行解密验证。
(3)Core services: 这是Harbor的核心功能,主要提供以下服务:
1)UI:提供图形化界面,帮助用户管理registry上的镜像(image), 并对用户进行授权。
2)webhook:为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块。
3)token 服务:负责根据用户权限给每个docker push/pull命令签发token. Docker 客户端向Regi?stry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。
(4)Database:为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。
(5)Job Services:提供镜像远程复制功能,可以把本地镜像同步到其他Harbor实例中。
(6)Log collector:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
各个组件之间的关系如下图所示:
技术图片

Harbor构建

Harbor的每个组件都是以Docker容器的形式构建的,官方也是使用Docker Compose来对它进行部署。用于部署Harbor的Docker Compose模板位于 harbor/docker-compose.yml,打开这个模板文件,发现Harbor是由7个容器组成的;
(1)nginx:nginx负责流量转发和安全验证,对外提供的流量都是从nginx中转,所以开放https的443端口,它将流量分发到后端的ui和正在docker镜像存储的docker registry。
(2)harbor-jobservice:harbor-jobservice 是harbor的job管理模块,job在harbor里面主要是为了镜像仓库之前同步使用的;
(3)harbor-ui:harbor-ui是web管理页面,主要是前端的页面和后端CURD的接口;
(4)registry:registry就是docker原生的仓库,负责保存镜像。
(5)harbor-adminserver:harbor-adminserver是harbor系统管理接口,可以修改系统配置以及获取系统信息。
(6)harbor-db:harbor-db是harbor的数据库,这里保存了系统的job以及项目、人员权限管理。由于本harbor的认证也是通过数据,在生产环节大多对接到企业的ldap中;
(7)harbor-log:harbor-log是harbor的日志服务,统一管理harbor的日志。通过inspect可以看出容器统一将日志输出的syslog。
这几个容器通过Docker link的形式连接在一起,这样在容器之间可以通过容器名字互相访问。对终端用户而言,只需要暴露proxy (即Nginx)的服务端口。

企业级私有仓库镜像仓库Harbor

在网上下载docker-compose工具。

https://github.com/docker/compose/releases/tag/1.25.1-rc1

[root@docker02 ~]# tar -zxf docker-compose.tar.gz  -C /usr/local/bin/
//解压到命令目录
[root@docker02 ~]# chmod  +x /usr/local/bin/docker-compose 
[root@docker02 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
//安装依赖包
[root@docker02 ~]# docker-compose -v
//查看版本信息
docker-compose version 1.24.0, build 0aa59064

在网上下载harbor并安装。

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

[root@docker02 ~]# tar -zxf harbor-offline-installer-v1.7.4.tgz  -C /usr/local/
//导入harbor离线安装包,解压到/usr/

修改harbor配置文件,并执行自带的安装脚本

[root@docker02 ~]# cd  /usr/local/harbor/
[root@docker02 harbor]#ls

技术图片

[root@docker02 harbor]# vim harbor.cfg 
hostname = 192.168.1.13    #13 改为本机IP地址
harbor_admin_password = Harbor12345   #harbor密码
[root@docker02 harbor]# ./install.sh
//执行一下自带的安装脚本

在浏览器登陆一下harbor

http://192.168.1.13:80 用户名:admin,密码:Harbor12345

创建一个项目
技术图片
技术图片
技术图片
修改docker配置文件,连接私有仓库

[root@docker02 harbor]# vim /usr/lib/systemd/system/docker.service 

ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.
13  #13行添加

[root@docker02 harbor]# systemctl  daemon-reload 
[root@docker02 harbor]# systemctl restart docker
//重启docker
[root@docker02 harbor]# docker ps
//发现运行的容器少了很多

技术图片

[root@docker02 harbor]# docker-compose start
//启动harker的文件中的容器

技术图片
登陆harbor

[root@docker02 harbor]# docker login -u admin -p Harbor12345 192.168.1.13
//登陆harbor

上传镜像到仓库

[root@docker02 harbor]# docker tag centos:7  192.168.1.13/xgp/centos:7
//修改标签
[root@docker02 harbor]# docker push 192.168.1.13/xgp/centos:7 
//上传镜像

技术图片
第二台加入仓库,测试下载

[root@docker02 harbor]# vim /usr/lib/systemd/system/docker.service 

ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.
13  #13行添加

[root@docker02 harbor]# systemctl  daemon-reload 
[root@docker02 harbor]# systemctl restart docker
//重启docker

登陆harbor

[root@docker02 harbor]# docker login -u admin -p Harbor12345 192.168.1.13
//登陆harbor

下载刚刚上传的镜像

[root@docker01 xxx]# docker pull  192.168.1.13/xgp/centos:7
[root@docker01 xxx]# docker images
//查看本地镜像

技术图片
下载成功

利用harbor搭建企业级私有镜像仓库(文末赠书)(代码片段)

利用Harbor搭建企业级私有镜像仓库(文末赠书)收录于话题#Docker专辑9个「点击图片获取最近两年爆款好文」背景docker中要使用镜像,一般会从本地、dockerHup公共仓库和其它第三方公共仓库中下载镜像,一般出于安全和外网(墙)... 查看详情

docker企业级私有仓库——harbor介绍和部署(代码片段)

Docker企业级私有仓库——Harbor介绍和部署前言?docker容器应用及开发和运行离不开可靠的镜像管理,在前面的文章我们提到了我们在拉取镜像的时候使用的是docker官方提供的公共镜像仓库,但是无论从安全还是效率等其他方面考... 查看详情

私有仓库harbor的搭建(代码片段)

...境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的DockerRegistry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。它主要提供DcokerRegistry管理界面UI,可基于... 查看详情

教你轻松玩harbor-常用的企业级私有仓库(代码片段)

...?掌握常用的harbor搭建方法内容:1、Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是DockerRegistry的更高级封装。harbor还是由一个个镜像组成一个架构,实现私有仓库的功能。它除了提供友好的WebUI界面࿰... 查看详情

企业级私有镜像仓库harbor(代码片段)

 1.安装docker#安装docker$yuminstalldocker#安装docker...$systemctlstartdocker#运行docker服务$yuminstalldocker-compose#需要安装docker-compose 2.下载harbor#新下载地址wgethttps://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz#https... 查看详情

docker私有仓库(代码片段)

...bor日常操作管理Harbor管理生命周期Harbor是VMware公司开源的企业级DockerRegistry项目Harbor的优势基于角色控制基于镜像的复制策略支持LDAP/AD图像删除和垃圾收集图形UI审计RESTfulAPIProxy通过一个前置的反向代理统一接受浏览器,Docker客... 查看详情

docker私有仓库部署和管理(代码片段)

...作管理Harbor管理生命周期Harbor介绍Harbor是VMware公司开源的企业级DockerRegistry项目Harbor的优势基于角色控制基于镜像的复制策略支持LDAP目录服务/AD域服务图像删除和垃圾收集图形UI(可以访问Web界面)审计RESTfulAPIHarbor架构组成Proxy... 查看详情

构建自己的镜像仓库(harbor)(代码片段)

...的特点,设计镜像复制和中文支持等功能。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Re 查看详情

docker--harbor私有仓库(代码片段)

Docker--Harbor私有仓库Docker--Harbor私有仓库Harbor很重要阿里云的镜像仓库必须掌握#一.//查看Docker-Compose版本判断安装是否是成功chmod+xdocker-composecpdocker-compose/usr/local/bin/docker-compose-v"由于Harbor镜像仓库的镜像管理要用到compose所以compose... 查看详情

docker镜像仓库harbor安装与配置(代码片段)

...境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的DockerRegistry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor下载:国外下载 查看详情

docker搭建私有仓库之harbor(代码片段)

HarborHarbor是构建企业级私有docker镜像的仓库的开源解决方案,它是DockerRegistry的更高级封装,它除了提供友好的WebUI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载... 查看详情

利用阿里云ecs部署自己的私有harbor镜像仓库(代码片段)

文章目录利用阿里云ECS部署自己的私有harbor镜像仓库harbor简介harbor的部署安装依赖安装docker安装docker-compose安装harborharbor的一些镜像浏览器访问向harbor推送nginx镜像利用阿里云ECS部署自己的私有harbor镜像仓库harbor简介虽然Docker官... 查看详情

利用阿里云ecs部署自己的私有harbor镜像仓库(代码片段)

文章目录利用阿里云ECS部署自己的私有harbor镜像仓库harbor简介harbor的部署安装依赖安装docker安装docker-compose安装harborharbor的一些镜像浏览器访问向harbor推送nginx镜像利用阿里云ECS部署自己的私有harbor镜像仓库harbor简介虽然Docker官... 查看详情

「开源摘星计划」优麒麟系统(国产)部署harbor私有镜像仓库服务(代码片段)

...。  本篇文章则在优麒麟20.04操作系统上部署Harbor2.6.0私有镜像仓库服务,其它版本的Harbor亦可参考本文档。关于优麒麟的详细信息可查看:https://www.openkylin.top/二、主机初始化2.1禁用交互分区$sudosed-i/swap/s/^\\(.*\\)$/#\\1/g/etc/f 查看详情

docker搭建harbor仓库(代码片段)

...用户的特点,设计镜像复制和中文支持等功能。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在 查看详情

docker——harbor私有仓库部署与管理(代码片段)

...个项目的镜像权限管理及控制功能Harbor是VMware公司开源的企业级DockerRegistry项目1、Harbor的优势①基于角色控制②基于镜像的复制策略③支持LDAP/AD④图像删除和垃圾收集⑤图像UI⑥审计⑦RESTfulAPI2、Harbor知识点Proxy:通过一个前... 查看详情

docker学习笔记——镜像仓库制作(公有+私有+harbor)(代码片段)

文章目录一、官方仓库1.官方镜像仓库1)web页面登录2)Linux命令行登录2.dockerhup镜像上传、下载1)镜像上传2)镜像下载3.镜像加速器1)阿里云加速器二、docker本地容器镜像仓库1.使用registry容器镜像实现本地非安全镜像仓库1)下载registry... 查看详情

docker学习笔记——镜像仓库制作(公有+私有+harbor)(代码片段)

文章目录一、官方仓库1.官方镜像仓库1)web页面登录2)Linux命令行登录2.dockerhup镜像上传、下载1)镜像上传2)镜像下载3.镜像加速器1)阿里云加速器二、docker本地容器镜像仓库1.使用registry容器镜像实现本地非安全镜像仓库1)下载registry... 查看详情