一 Harbor 简介
Harbor软件网站:github.com/goharbor/ha…
1.1 什么是Harbor
Harbor 是 VMware 公司开源的企业级Docker Registry项目,其目标是协助用户迅速搭建一个企业级的 Docker Registry 服务。
Harbor以 Docker 公司开源的Registry 为根底,供给了图形办理 UI 、依据角色的拜访操控(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功用,一起还原生支撑中文。
Harbor 的每个组件都是以 Docker 容器的形式构建的,运用** docker-compose** 来对它进行部署。用于部署 Harbor 的 docker-compose模板坐落 harbor/docker-compose.yml。
1.2 Harbor的特性
- 依据角色操控:用户和库房都是依据项目进行组织的,而用户在项目中能够拥有不同的权限。
- 依据镜像的仿制战略:镜像能够在多个Harbor实例之间进行仿制(同步)。
- 支撑 LDAP/AD:Harbor 能够集成企业内部已有的 AD/LDAP(相似数据库的一张表),用于对现已存在的用户认证和办理。
- 镜像删除和废物收回:镜像能够被删除,也能够收回镜像占用的空间。
- 图形化用户界面:用户能够经过阅读器来阅读,查找镜像库房以及对项目进行办理。
- 审计办理:一切针对镜像库房的操作都能够被记载追溯,用于审计办理。
- 支撑 RESTful API:RESTful API 供给给办理员关于 Harbor 更多的操控, 使得与其它办理软件集成变得更容易。
- Harbor和docker registry的联系:Harbor实质上是对docker registry做了封装,扩展了自己的事务模板。
1.3 Harbor的构成
Harbor 在架构上主要有Proxy
、Registry
、Core services
、Database(Harbor-db)
、Log collector(Harbor-log)
、Job services
六个组件。
●Proxy: Harbor的 Registry、UI、Token 服务等组件,都处在 nginx 反向署理后边。该署理将来自阅读器、docker clients 的请求转发到后端不同的服务上。
●Registry: 负责贮存 Docker 镜像,并处理 Docker push/pull 指令。因为要对用户进行拜访操控,即不同用户对 Docker 镜像 有不同的读写权限,Registry 会指向一个 Token 服务,强制用户的每次 Docker pull/push 请求都要带着一个合法的 Token, Registry 会经过公钥对 Token 进行解密验证。
●Core services: Harbor的中心功用,主要供给以下3个服务:
- UI(harbor-ui): 供给图形化界面,协助用户办理 Registry 上的镜像(image), 并对用户进行授权。
- WebHook:为了及时获取Registry 上image 状况改变的状况,在Registry 上装备 Webhook,把状况改变传递给 UI 模块。
- Token 服务:负责依据用户权限给每个 Docker push/pull 指令签发 Token。Docker 客户端向 Registry 服务发起的请求, 假如不包含 Token,会被重定向到 Token 服务,获得 Token 后再重新向 Registry 进行请求。
●Database(harbor-db)
为core services供给数据库服务,负责贮存用户权限、审计日志、Docker 镜像分组信息等数据。
●Job services:
主要用于镜像仿制,本地镜像能够被同步到远程 Harbor 实例上。
●Log collector(harbor-log): 负责搜集其他组件的日志到一个当地。
Harbor 的每个组件都是以 Docker 容器的形式构建的,因而,运用 Docker Compose 来对它进行部署。 一共分为7个容器运行,经过在docker-compose.yml地点目录中履行 docker-compose ps 指令来检查, 称号分别为:nginx、harbor-jobservice、harbor-ui、harbor-db、harbor-adminserver、registry、harbor-log。 其间 harbor-adminserver 主要是作为一个后端的装备数据办理,并没有太多的其他功用。harbor-ui 所要操作的一切数据都经过 harbor-adminserver 这样一个数据装备办理中心来完结。
二 部署 Harbor 服务
下载或上传 Harbor 装置程序
修正装备文件:vim harbor.cfg
2.1 拜访UI页面
公开:一切的人都能够在我的私有库房下载镜像
私有:只要我指定的用户角色才能够在我的私有库房项目中下载镜像
在我本地推送镜像到私有库房
2.2 其他主机想下载私有库房的镜像
2.3 harbor办理
2.3.1 创立用户
2.3.2 运用新创立的用户下载私有项目的镜像
2.4 日志检查
2.5 非项目成员无法推送镜像
2.5.1 在项目中增加lisi用户就能够推送镜像到项目中了
2.6 能够修正暗码
2.7 harbor私有库房的库房镜像同步
再准备一天主机做同步
2.7.1 同步库房
2.8 上传镜像做测试
2.9 harbor的数据目录
假如想要做harbor数据迁移,就打包这个文件里边的数据就能够了
/data/registry/docker/registry/v2/repositories
2.10 harbor日志目录
/var/log/harbor
三 重启docker-compose总有一些容器打不开怎么办
3.1 假如一切的容器都显现为UP正常了但是harbor仍是登录不上去怎么办?
总结
docker 私有库房一般运用5000端口
harbor 私有库房的镜像格式:
harbor_url/项目 称号/image_name:tag
公有库房:任何人不必登录库房就能拉取项目中的镜像
私有库房:需要登录库房,具有权限的用户才能拉取镜像