一、简介
Harbor是VMware中国研发团队开发并开源的企业级Docker Registry项目,对中文支持很友好。
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。
Harbor具有如下特点:
-
基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限
-
镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景
-
图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间
-
AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理
-
审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理
-
国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来
-
RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易
-
部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备
镜像的存储,Harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。Harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。
Harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。
docker的registry是用本地存储或者s3、Ceph、Swift都是可以的,Harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。Harbor的镜像拷贝功能是通过docker registry的API去拷贝,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性问题。
二、Harbor获取地址
1. Harbor中文官网:https://vmware.github.io/harbor/cn/
2. Github地址:https://github.com/vmware/harbor
3. Harbor下载地址:https://github.com/vmware/harbor/releases
4. Harbor二进制离线包镜像站点:http://harbor.orientsoft.cn/
三、Harbor安装前提条件
Hardware | |
CPU最小双核 | 建议4核 |
内存最小4GB | 建议8GB |
硬盘最小40GB | 建议160GB |
Software | ||
Python | 2.7 or higher | |
Docker engine | 1.10 or higher | |
Docker compose | 1.6.0 or higher | Python编写的一个工具,通过Docker compose编排部署的harbor |
Openssl | Latest is preferred |
注:
Harbor的所有服务组件都是在docker中部署的,所以官方安装使用docker-compose快速部署,所以我们需要安装docker、docker-compose
由于Harbor是基于Docker registry V2版本,所以就要求Docker版本不小于1.10.0,docker-compose版本不小于1.6.0
Network ports | ||
443 | HTTPS | |
4443 | HTTS | Connections to the Docker Content Trust service for Harbor, only needed when Notary is enabled |
80 | HTTP | Harbor UI and API will accept requests on this port for http protocol |
四、Harbor安装前准备
-
安装Docker
-
安装docker-compose
cd /home/gisyun/soft/harbor;
unzip docker-compose-linux-x86_64.zip;
chmod +x docker-compose #增加权限
mv docker-compose /usr/bin/ #移动到可执行路径方便使用
docker-compose version #查看版本信息,校验是否安装成功
软件版本 | |
docker | 18.03-CE |
docker-compose | 1.21.2 |
Harbor | 1.5.1 |
五、https方式安装Harbor
1.自签TLS证书 https://github.com/vmware/harbor/blob/master/docs/configure_https.md(跟该官方配置走)
(1)解压harbor包,在解压的包内创建一个ssl目录来存放一会儿创建的证书;进入ssl目录执行以下操作。
(2) Create your own CA certificate: In a test or development environment, you may choose to use a self-signed certificate instead of the one from a CA. The below commands generate your own certificate:
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout ca.key \
-x509 -days 365 -out ca.crt
注意:
Country Name是个名称,填写CN;
State or Province Name、Locality Name、Organization Name、Organizational Unit Name可以不输入;
Common Name填写gisyun;
(3)Generate a Certificate Signing Request:(指定一个域名)
If you use FQDN like reg.yourdomain.com to connect your registry host, then you must use reg.yourdomain.com as CN (Common Name). Otherwise, if you use IP address to connect your registry host, CN can be anything like your name and so on:
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout reg.gisnci.com.key \
-out reg.gisnci.com.csr
注意:一会儿以reg.gisnci.com域名作为仓库的访问地址
Country Name是个名称,填写CN;
Common Name填写reg.gisnci.com即使用的域名;
其它可以忽略,密码也不设置。
(4)Generate the certificate of your registry host(拿请求证书向CA证书颁发)
openssl x509 -req -days 3650 -in reg.gisnci.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out reg.gisnci.com.crt
ssl目录下会产生证书文件,其中的crt是一会儿用到的。
2.Harbor安装与配置
(1)配置Harbor
vim harbor.cfg
### 指定 harbor 的主机名,可以是IP地址,也可以是域名(不能注释再指定)
hostname = reg.gisnci.com
### 指定用户访问使用的协议,默认http,这里使用https
ui_url_pr