Docker(十) 构建企业私有仓库Harbor

  • A+
所属分类:Docker

  Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 – 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

  • 镜像复制 – 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

  • 图形化用户界面 – 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

  • AD/LDAP 支持 – Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

  • 审计管理 – 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

  • 国际化 – 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

  • RESTful API – RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。

  • 部署简单 – 提供在线(online)和离线(offline)两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。

为什么有了Docker Registry还需要Harbor?

可以阅读下这篇文章

http://news.watchstor.com/news-161614.htm

官网中文文档

http://vmware.github.io/harbor/cn/

下载安装Harbor

目前预发布版V1.3.0,稳定版V1.2.2,GitHub需要科学上网下载,可以通过以下国内镜像站下载离线二进制包。

GitHub地址:https://github.com/vmware/harbor/releases

国内镜像站:http://harbor.orientsoft.cn/

uname -r
3.10.0-327.el7.x86_64
yum install docker-compose
cd /root/tools/
wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
tar -zxf harbor-offline-installer-v1.2.2.tgz -C /root/tools
cd /root/tools/harbor/

配置harbor.cfg文件

vim harbor.cfg
hostname = reg.yalei.com
harbor_admin_password = 123456

hostname访问url,harbor_admin_password登录密码,其他参数可以web登陆后台修改

运行install.sh

[root@py harbor]# ./install.sh 
[Step 0]: checking installation environment ...
Note: docker version: 1.12.6
✖ Need to install docker-compose(1.7.1+) by yourself first and run this script again.

报错解决依赖

yum install docker-compose -y

安装脚本会自动下载镜像,完成后,可以查看docker镜像

[root@py harbor]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
vmware/harbor-log                v1.2.2              36ef78ae27df        2 weeks ago         199.8 MB
vmware/harbor-jobservice         v1.2.2              e2af366cba44        2 weeks ago         164.1 MB
vmware/harbor-ui                 v1.2.2              39efb472c253        2 weeks ago         177.8 MB
vmware/harbor-adminserver        v1.2.2              c75963ec543f        2 weeks ago         141.6 MB
vmware/harbor-db                 v1.2.2              ee7b9fa37c5d        2 weeks ago         328.5 MB
vmware/nginx-photon              1.11.13             6cc5c831fc7f        3 weeks ago         144.2 MB
vmware/registry                  2.6.2-photon        5d9100e4350e        9 weeks ago         173.1 MB
vmware/postgresql                9.6.4-photon        c562762cbd12        11 weeks ago        225.3 MB
vmware/clair                     v2.0.1-photon       f04966b4af6c        4 months ago        297.1 MB
vmware/harbor-notary-db          mariadb-10.1.10     64ed814665c6        7 months ago        324.1 MB
vmware/notary-photon             signer-0.5.0        b1eda7d10640        7 months ago        155.7 MB
vmware/notary-photon             server-0.5.0        6e2646682e3c        7 months ago        156.9 MB

harbor-adminserver:用来管理系统配置,并提供了相应的 WEB 页面和 API
来供用户操作,改进了之前需用户手动修改配置文件并手动重启系统的用户体验。

harbor-db : 由官方MySql镜像构成的数据库容器

harbor-jobservice:是harbor的job管理模块,job在harbor里面主要是为了镜像仓库同步使用的。

harbor-log : 运行着rsyslogd的容器,通过log-driver的形式收集其他容器的日志

harbor-ui : 即架构中的core services, 构成此容器的代码是Harbor项目的主体

nginx : 由 nginx 服务器构成的反向代理

registry : 由Docker官方的开源 registry 镜像构成的容器实例

配置本地hosts,通过浏览器访问

地址:http://reg.yalei.com/harbor/sign-in

用户名:admin

密码:123456

Harbor数据存储/日志

Harbor数据被持久化在宿主机的/data/registry目录下,即使删除harbor容器或者重新被创建,这部分数据也不会改变。

另外,harbor使用rsyslog来收集每一个容器日志,默认情况下,这些日志存放在宿主机的/var/log/harbor/目录下。

Harbor权限管理

企业中的软件研发团队往往划分为诸多角色,如项目经理、产品经理、测试、运维等。在实际的软件开发和运维过程中,这些角色对于镜像的使用需求是不一样的。比如:开发人员需要拥有对镜像的读写(PULL/PUSH)权限以更新和改正代码;测试人员中需要读取(PULL)权限;而项目经理需要对上述的角色进行管理。

注意:创建仓库访问级别设置为私有,这样都要登陆验证才能pull/push代码

Harbor成员角色权限

  • 项目管理员:超级管理员

  • 开发人员:pull/push

  • 访客:pull

Harbor集成LDAP

LDAP安装这里不介绍,只说下如何集成,首先通过浏览器登陆Harbor--“系统管理”--“配置管理”--“认证模式”--“LDAP”

注意:由于Harbor网络模式使用的是默认docker0网桥,容器无法解析内网vgtech.org这个域名,需要修改hosts解析或者使用ip连接

docker images
docker_in harbor-ui

root@c204ab121aba [ / ]# vim /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.18.0.6      c204ab121aba
192.168.3.169   vgtech.org

Docker(十) 构建企业私有仓库Harbor

配置示例:

ldap://vgtech.org

cn=admin,dc=vgtech,dc=org

ou=people,dc=vgtech,dc=org

Harbor集成邮件

Docker(十) 构建企业私有仓库Harbor

配置示例:

smtp.126.com

465

yalei@126.com

admin <yalei@126.com>

使用方法

通过web登陆Harbor,创建一个test项目仓库

登陆

[root@py ]# docker login reg.yalei.com

定义tag

[root@py ]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
yalei/nginx                      v1                  ee1b5193f8b8        13 hours ago        643.3 MB
[root@py ]# docker tag yalei/nginx:v1 reg.yalei.com/test/yalei/nginx:v1
[root@py ]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
reg.yalei.com/test/yalei/nginx   v1                  ee1b5193f8b8        13 hours ago        643.3 MB
yalei/nginx                      v1                  ee1b5193f8b8        13 hours ago        643.3 MB

push上传镜像,完成后通过web可以查看

[root@py ]# docker push reg.yalei.com/test/yalei/nginx:v1

pull拉取镜像

[root@py ]# docker rmi reg.yalei.com/test/yalei/nginx:v1
[root@py ]# docker pull reg.yalei.com/test/yalei/nginx:v1

Docker(十) 构建企业私有仓库Harbor

参考文档

https://www.ilanni.com/?p=13492

http://www.ywnds.com/?p=7958

YaLei

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: