私有镜像仓库Harbor的安装与部署

一、介绍

Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker registry服务。

它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based AccessControl),AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。

作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。

Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

Harbor 是由 VMware 中国研发团队负责开发的开源企业级 Docker Registry,不仅解决了我们直接使用 Docker Registry 的功能缺失,更解决了我们在生产使用 Docker Registry 面临的高可用、镜像仓库直接复制、镜像仓库性能等问题,适用大规模docker集群部署提供仓库服务。

 

二、相关组件

Docker 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运行,负责收集其他组件的日志,供日后进行分析。

三、环境准备工作

 

  • 运行环境:

OS:CentOS Linux release 7.4.1708 (Core)

Docker-ce:Docker version 18.09.6

Docker-compose:docker-compose version 1.24.0

Harbor version:harbor.v1.8.0

 

  • 安装docker-ce

yum install docker-ce-18.09.6 -y

无法通过yum安装可以直接从这里(密码:f0ra)获取

将文件docker18.06.3_rpm.tar.gz上传至服务器执行安装操作:

解压压缩包:
tar -zxvf docker18.06.3_rpm.tar.gz

解压后在docker目录下执行安装:
cd docker && rpm -ivh --force *.rpm

检测docker版本:
docker --version

  • 安装docker-compose

在线安装:

curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

离线安装:

安装包访问这里(密码:1oyr)

将docker-compose-Linux-x86_64.zip 上传至服务器/usr/local/bin 目录,改文件名为docker-compose

并赋予可执行权限 chmod 755 /usr/local/bin/docker-compose

验证docker-compose版本

docker-compose --version

  • 获取Harbor安装文件

Harbor安装文件可以访问这里(密码:aq6e)获取

四、安装配置

  • 创建存储目录、修改配置文件

tar zxf harbor-offline-installer-v1.8.0-rc1.tgz

cd harbor

mkdir /home/logs/data

vim harbor.yml

修改hostname为本机IP地址

hostname:IP

  • 指定证书文件目录(可选)

如果配置https访问则需要指定证书文件,需要开启https访问以及指定端口,默认端口443

指定证书文件目录

certificate: 证书文件目录/server.crt
private_key: 证书文件目录/server.key

 

  • 执行安装脚本

[root@xdja harbor]# sh install.sh

  • 测试登录:

http://IP

admin/Harbor12345

 

五、证书配置

默认情况下 Harbor 是使用 http 进行访问,官方提供了自签名证书的方法,生产环境建议购买ssl证书,目前docker.xdja.com域名为认证证书,可以正常使用。

需要配置https访问必须指定证书文件,可以自行申请,或者服务器上自建证书,如果采用的是自建等非认证的证书,客户端登录时需要配置免https认证

# vim /etc/docker/daemon.json
{"insecure-registries":["IP"]}

# 重新加载Docker的配置文件
# systemctl daemon-reload

# 重启Docker
# systemctl restart docker

六、服务调试和重启

  • 停止容器:

docker-compose stop

  • 启动容器:

直接执行安装脚本

[root@xdja harbor]# sh install.sh

通过docker-compose启动

docker-compose up -d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ango_Cango

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值