企业级Docker Registry——Harbor实践

简介

Harbor是由VMware公司中国团队为企业用户设计的Registry server开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能

企业级Docker Registry——Harbor实践

功能特点

  1. 云原生仓库: 凭借对容器镜像和 Helmcharts 的支持,Harbor可以作为容器运行时和业务流程平台等云原生环境的仓库

  2. 基于角色的访问控制:用户和存储库通过“项目”进行组织,并且用户可以对项目下的镜像或Helm charts具有不同的权限。
  3. 基于策略的复制:可以基于具有多个过滤器(存储库,标签和标签)的策略在多个仓库实例之间复制(同步)镜像和Helm charts。如果遇到任何错误,Harbor会自动重试复制。非常适合负载平衡,高可用性,多数据中心,混合和多云场景。
  4. 漏洞扫描:Harbor会定期扫描镜像并警告用户存在漏洞。
  5. LDAP/AD域支持:Harbor与现有企业LDAP / AD集成以进行用户身份验证和管理,并支持将LDAP组导入Harbor并为其分配适当的项目角色。
  6. OIDC支持:Harbor利用OpenID Connect(OIDC)来验证由外部授权服务器或身份提供者认证的用户的身份。可以启用单点登录以登录Harbor门户。
  7. 镜像删除和垃圾收集:可以删除镜像并回收其空间。
  8. 公证:可以保证镜像的真实性。
  9. 图形化门户管理:用户可以轻松浏览,搜索存储库和管理项目。
  10. 审计:跟踪对存储库的所有操作。
  11. RESTful API:用于大多数管理操作的RESTful API,易于与外部系统集成。嵌入式Swagger UI可用于探索和测试API。
  12. 容易部署:提供在线和离线安装程序。另外,可以使用HelmChart在Kubernetes上部署Harbor。

安装部署

系统要求:在linux主机上,docker 17.06.0-ce+, docker-compose1.18.0+, 也可以在kubernetes 集群中使用HelmChart for Harbor部署。本文在linux主机中部署。

可以使用在线和离线两种方式安装,本文使用离线方式安装,获取harbor release.

解压包:

```tar xvfharbor-offline-installer-v1.9.1.tgz``` 进入harbor目录并修改harbor.yml文件 hostname。然后执行install.sh进行安装```# cd harbor# vimharbor.yml //修改hostname为当前主机ip地址#./prepare#./install.sh```

企业级Docker Registry——Harbor实践

显示安装成功,并可通过主机IP地址来访问,默认用户名密码为: admin/ Harbor12345, 可以在安装前修改harbor.yml中默认配置后安装并访问。

配置本地私服

```vim/etc/docker/daemon.json# 写入以下内容:{    "insecure-registries": ["192.168.109.200"]} ``` 验证是否配置成功: ```dockerinfo#查看InsecureRegistries:是否包含配置的私服地址

企业级Docker Registry——Harbor实践

dockerlogin 192.168.109.200 # 输入用户名和密码,显示 Login Succeeded 为成功 ```

企业级Docker Registry——Harbor实践

将本地镜像推送到Harbor

1. 将本地镜像打tag, 以hello-world项目为例, 将镜像推送到library项目下:

“`

dockertag hello-world:latest 192.168.109.200/library/hello:latest

“`

企业级Docker Registry——Harbor实践

2. 推送镜像

“`

dockerpush 192.168.109.200/library/hello

“`

企业级Docker Registry——Harbor实践

3. 登录harbor,查看镜像已经被推送到Harbor了

企业级Docker Registry——Harbor实践