docker harbor搭建笔记

Harbor是VMware公司开源的一个用于存储和分发Docker镜像的企业级Registry服务器,以Docker开源的Registry为基础,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全,提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

Harbor特性

基于角色的访问控制(Role Based Access Control)

基于策略的镜像复制(Policy based image replication)

镜像的漏洞扫描(Vulnerability Scanning)

AD/LDAP集成(LDAP/AD support)

镜像的删除和空间清理(Image deletion & garbage collection)

友好的管理UI(Graphical user portal)

审计日志(Audit logging)

RESTful API

部署简单(Easy deployment)

Harbor组件

依赖的外部组件:

Nginx(Proxy): Harbor的Registry、UI、Token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。

Registry v2: Docker官方镜像仓库, 负责储存Docker镜像,并处理Docker Push/Pull命令。由于我们要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry会指向一个Token服务,强制用户的每次Docker Push/Pull请求都要携带一个合法的Token, Registry会通过公钥对Token进行解密验证。

Database(MySQL/Postgresql):为Core Services提供数据库服务,负责储存用户权限、审计日志、Docker镜像分组信息等数据。

Harbor自己的组件:

Core Services(Admin Server): 这是Harbor的核心功能,主要提供以下服务:

API:提供Harbor RESTful API

UI:提供图形化界面,帮助用户管理Registry上的镜像, 并对用户进行授权。

Webhook:为了及时获取Registry上镜像状态变化的情况,在Registry上配置Webhook,把状态变化传递给UI模块。

Auth服务:负责根据用户权限给每个Docker Push/Pull命令签发Token。Docker客户端向Registry服务发起的请求,如果不包含Token,会被重定向到这里,获得Token后再重新向Registry进行请求。

Replication Job Service:提供多个Harbor实例之间的镜像同步功能。

Log Collector:为了帮助监控Harbor运行,负责收集其他组件的日志,供日后进行分析。

harbor架构图

docker harbor搭建笔记

 

harbor 安装

# 安装方式分为在线安装和离线安装两种方式,这里采用在线安装方式 # 下载在线安装程序 # wget -P /usr/local https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.1.tgz # 解压下载文件 # tar zxf /usr/local/harbor-online-installer-v1.7.1.tgz -C /usr/local/ # 修改配置文件,根据自己的需求进行修改 # vim /usr/local/harbor/harbor.cfg # 本机IP或者域名,不能是127.0.0.1或者localhost hostname = 192.168.1.130 或者域名xxx.com # 系统Harbor管理员的密码 harbor_admin_password = Harbor12345 # 禁止用户注册 self_registration = off # 设置只有管理员可以创建项目 project_creation_restriction = adminonly # 由于Harbor的Nginx组件默认会监听宿主机的80、443、4443端口,如果需要更改Nginx的端口映射,可以修改以下配置文件 # vim /usr/local/harbor/docker-compose.yml ports: - 8082:80 - 443:443 - 4443:4443 # 如果上面更改了Nginx的80端口映射,此时还需要编辑Harbor的配置文件,修改hostname加上指定的端口号 # vim harbor.cfg hostname = 192.168.1.130:8082 # 执行安装脚本 # /usr/local/harbor/install.sh # Harbar的日志目录是:/var/log/harbor # Harbar相关数据卷的挂载目录默认是宿主机的/data目录,如果重新安装Harbar并在配置文件里更改了数据库密码,则需要删除/data目录,否则Harbor部分组件会启动失败

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfydg.html