Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 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,供日后进行分析
1.配置环境
此时需要三个包:docker,docker-compose,harbor
docker环境配置:
cd /etc/yum.repos.d/
vim westos.repo ##编辑yum源配置文件,此时必须使用rhel7.5镜像,否则解决不了依赖性
yum install containerd.io-1.2.5-3.1.el7.x86_64.rpm container-selinux-2.21-1.el7.noarch.rpm docker-ce-18.09.6-3.el7.x86_64.rpm docker-ce-cli-18.09.6-3.el7.x86_64.rpm -y ##安装docker所需要的包
systemctl start docker ##打开docker服务
yum install bash-* -y ##安装命令补齐插件
sysctl -a |grep bridge ##过滤桥接信息
cd /etc/sysctl.d/
vim docker.conf ##编辑配置文件,设置桥接信息打开
sysctl --system ##重载信息
ip addr show ##会分配docker的ip
yum install bash-* -y
docker-compose下载:
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose ##下载docker-compose
chmod +x /usr/local/bin/docker-compose ##执行权限
docker-compose version ##查看版本信息
harbor下载:
网站下载:https://github.com/goharbor/harbor/releases
tar zxvf harbor-offline-installer-v1.8.1.tgz
2.配置数据环境
systemctl start docker ##打开docker服务
cd harbor
docker load -i harbor.v1.8.1.tar.gz ##加载harbor镜像插件
vim harbor.yml ##配置文件,设置主机名,以及登陆密码
hostname: westos.com
harbor_admin_password: Harbor12345
systemctl restart docker ##重启docker服务
systemctl enable docker ##设置开机自启
docker-compose up -d ##开启服务docker-compose
3.加载证书认证
官网地址:https://github.com/goharbor/harbor/blob/master/docs/configure_https.md
openssl genrsa -out ca.key 4096 ##生成认证证书
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=westos.com" -key ca.key -out ca.crt
openssl genrsa -out westos.com.key 4096 ##创建私钥,指定密钥长度
openssl req -sha512 -new -subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=westos.com" -key westos.com.key -out westos.com.csr ##网页生成证书
vim v3.ext ##生成注册表主机的证书
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in westos.com.csr -out westos.com.crt ##将上个文件编辑的信息生成证书
mkdir -p /data/cert/
cp westos.com.crt /data/cert/ ##将证书与密钥发送给hardor编辑文件
cp westos.com.key /data/cert/
openssl x509 -inform PEM -in westos.com.crt -out westos.com.cert ##Docker配置服务器证书、密钥和CA
mkdir -p /etc/docker/certs.d/westos.com
cp westos.com.key /etc/docker/certs.d/westos.com/
cp ca.crt /etc/docker/certs.d/westos.com/
cp westos.com.cert /etc/docker/certs.d/westos.com/
vim harbor.yml
hostname: westos.com
harbor_admin_password: Harbor12345
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /data/cert/westos.com.crt ##指定证书位置
private_key: /data/cert/westos.com.key
./prepare ##重载hardor服务
systemctl restart docker
docker-compose down -v
docker-compose up -d ##重启docker-compose服务
vim /etc/hosts ##添加域名解析
172.25.30.2 westos.com
docker login westos.com ##登陆
docker load -i harbor.v1.8.1.tar.gz ##加载harbor镜像插件
docker tag busybox:latest westos.com/library/busybox ##更改镜像名,设置为登陆名以及镜像仓库,可根据网页配置添加上查看应该修改的镜像名
docker push westos.com/library/busybox ##推送镜像
总结:
出现500报错,可以重启服务,检查端口。
如果一直推送拒绝服务,就可以检查一下镜像名,是否与网页上仓库名与用户登陆名一致。