Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

时间:2024-04-25 08:36:08

Harbor源码地址:https://github.com/vmware/harborHarbort特性:
基于角色控制
用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限。
基于镜像的复制策略
镜像可以在多个 Harbor 实例之间进行复制。
支持 LDAP
Harbor 的用户授权可以使用已经存在 LDAP 用户。
镜像删除 & 垃圾回收
Image 可以被删除并且回收 Image 占用的空间,绝大部分的用户操作 API, 方便用户对系统进行扩展。
用户 UI
用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理。
轻松的部署功能
Harbor 提供了 online、offline 安装, 除此之外还提供了 virtual appliance 安装
系统要求:
docker 1.10.0 以上版本,安装文档:https://docs.docker.com/engine/installation/
docker-compose 1.6.0 以上版本,安装文档:https://docs.docker.com/compose/install/软件安装:yum -y install certbot libevent-devel gcc libffi-devel python-devel openssl-devel python2-pip
yum -y install docker
启动 docker,使用如下命令行:
systemctl start docker
systemctl enable docker
使用 pip 方式安装 docker-compose,使用如下命令:
pip install -U docker-compose
查看 docker-compose 的版本,如下:
docker-compose version
离线版本下载:
https://github.com/vmware/harbor/releases以v1.1.2版本为例
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgzmv harbor-offline-installer-v1.1.2.tgz /data/ && cd /data/tar xvf harbor-offline-installer-v1.1.2.tgz
mkdir -p /data/harbor/cert
切换工作路径切证书存放目录
cd /data/harbor/cert
创建CA根证书
openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout ca.key -x509 -days 365 \
-out ca.crt -subj "/C=CN/L=Shenzhen/O=lisea/CN=harbor-registry"
生成一个证书签名, 设置访问域名为harbor.test.com
openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout harbor.test.com.key \
-out server.csr -subj "/C=CN/L=Shenzhen/O=lisea/CN=harbor.test.com"
生成主机证书
openssl x509 -req -days 365 \
-in server.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out harbor.test.com.crt
配置文件修改:
vim harbor.cfg
# 根据需求进行配置,至少修改 host 改为 harbor 服务器的 IP 地址或者域名
hostname = harbor.test.com
ui_url_protocol = https
# 邮件相关信息配置,如忘记密码发送邮件
email_server = smtp.163.com
email_server_port = 25
email_username = vip_star_hr@163.com
email_password = xxxxxx
email_from = docker <vip_star_hr@163.com>
email_ssl = false
# 设置证书路径
ssl_cert = /data/harbor/cert/harbor.test.com.crt
ssl_cert_key = /data/harbor/cert/harbor.test.com.key
通过自带脚本一键安装
sh install.sh
通过浏览器访问管理 [提前设置本地hosts文件本地重定向至harbor服务器IP]
https://harbor.test.com
用户默认为 admin
密码默认为 Harbor12345
客户端使用测试
创建 public 项目, 访问级别选择公开
Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

创建仓库证书存放目录
mkdir /etc/docker/certs.d/harbor.test.com
从 harbor 服务器获取证书至仓库证书目录
scp root@harbor-server-ip:/data/harbor/cert/ca.crt /etc/docker/certs.d/harbor.test.com/ca.crt
用户登陆[ 本地需要做 hosts harbor.test.com 域名重定向至 harbor 服务器 IP]
docker login -u admin -p Harbor12345 harbor.test.com
提示"Login Succeeded"既成功
docker下载redis镜像:
docker pull redis
使用docker tag将镜像改名
Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

上传镜像到harbor仓库
Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

登录web查看镜像是否上传成功
Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

删除本地镜像
docker rmi harbor.test.com/public/redis:v1.0.0
从harbor中下载镜像
docker pull harbor.lisea.cn/public/redis:v1.0.0
其他说明:
停止 Harbor 服务:
$ docker-compose stop
启动 Harbor 服务:
$ docker-compose start
如果需要修改 Harbor 的配置,首先需要停掉正在运行的 Harbor 实例,更新 harbor.cfg 文件,再次运行install.sh
$ docker-compose down
$ vim harbor.cfg
$ sh install.sh
删除 Harbor 容器,保存镜像文件和 Harbor 的数据库文件:
$ sudo docker-compose rm
删除 Harbor 的数据库信息和镜像文件 (一般为了纯净安装):
$ rm -r /data/database
$ rm -r /data/registry
默认情况下,regirstry 的数据被持久化到目标主机的/data/目录,当 Harbor 的容器被删除或者重新创建的时候,数据不会有任何改变