Harbor正是一个用于存储Docker镜像的企业级Registry服务。
Harbor核心组件
- Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
- db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
- UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
- jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
- Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
- Registry:镜像仓库,负责存储镜像文件。
- Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
安装和配置
安装要求
- 最小配置:2核、4G内存、40G硬盘
- Docker引擎:17.03.0-ce +或更高版本
- Docker compose:1.18.0或更高版本
- 安装Openssl:为Harbor生成证书和密钥
网络端口
端口 | 协议 | 描述 |
---|---|---|
443 | HPPTS | Harbor端口和核心API将接受此端口上的https协议请求,此端口可以在配置文件中更改 |
8443 | HTTPS | 只有在启用“公证”时才需要连接到Dock的Docker Content Trust服务,此端口可以在配置文件中更改 |
80 | HTTP | Harbor端口和核心API将接受此端口上的http协议请求 |
安装步骤
1.下载安装程序
1 | wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.1.tgz |
2.配置harbor.yml
有两类参数,必需参数和可选参数
必需参数:
- hostname:目标主机的主机名,用于访问Portal和注册表服务。例如192.168.1.10或reg.yourdomain.com。不要使用localhost或127.0.0.1作为主机名 - 外部客户端需要访问注册表服务!
- data_volume:本地存储harbor数据的位置
- harbor_admin_password:管理员的初始密码。此密码仅在Harbor首次启动时生效。之后,将忽略此设置,并且应在Portal中设置管理员密码。请注意,默认用户名/密码为admin / Harbor12345。
- database:与本地数据库相关的配置,password:用于db_auth的PostgreSQL数据库的root密码。
- jobservice:jobservice相关服务,max_job_workers:作业服务中的最大复制工作者数。对于每个映像复制作业,工作程序将存储库的所有标记同步到远程目标。增加此数量可以在系统中执行更多并发复制作业。但是,由于每个工作者都消耗一定量的网络/ CPU / IO资源,请根据主机的硬件资源仔细选择该属性的值。
- log:log相关的url;
3.运行install.sh安装并启动Harbor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23# 安装docker
1.下载yum源
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
2.修改baseurl地址
底行模式下:%s/https:\/\/download.docker.com\//https:\/\/mirrors.tuna.tsinghua.edu.cn\/docker-ce\//g
3.查看程序包
yum repolist
4.安装
yum install -y docker-ce
5.配置文件:/etc/docker/daemon.json ,docker启动之前不存在可自行定义创建,启动之前就自动生成。
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
# 阿里云镜像
{
"registry-mirrors": ["https://6ucotgoh.mirror.aliyuncs.com"]
}
# systemctl daemon-reload
# systemcctl start docker
# 安装docker-compose,如果提前安装过忽略此步骤
yum install docker-compose -y
# 安装harbor
./install.sh