文章目录
Docker私有仓库部署与管理
一、Harbor简介
Docker Harbor 能够提供可视化的 Web 管理界面,可以方便管理 Docker 镜像,而且提供了多个项目的镜像权限管理及控制功能(包含统计信息,例如镜像下载次数,上传时间)
Harbor是VMware公司开源的企业级Docker Registry项目
Harbor的优势
- 基于角色控制
- 基于镜像的复制策略
- 支持LDAP/AD
- 图像删除和垃圾收集
- 图形UI
- 审计
- RESTful API
二、Harbor架构
Proxy
通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务
Registry
负责储存Docker镜像,并处理docker push/pull 命令
Core services
Harbor 的核心功能,包括UI、webhook 、token服务
Database
为core services 提供数据库服务
Log collector
负责收集其他组件的log、供日后进行分析
三、Harbor六大模块
(1)Proxy:
Harbor的registry、UI、token services等组件,都处在一个反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端服务上。
(2)Registry:
负责存储Docker镜像,以及处理Docker push/pull请求。因为Harbor强制要求对镜像的访问做权限控制, 在每一次push/pull请求时,Registry会强制要求客户端从token service那里获得一个有效的token。
(3)Core services:
Harbor的核心功能,主要包括如下3个服务:
- UI:作为Registry Webhook, 以图像用户界面的方式辅助用户管理镜像。
- WebHook:是在registry中配置的一种机制, 当registry中镜像发生改变时,就可以通知到Harbor的webhook endpoint。Harbor使用webhook来更新日志、初始化同步job等。
- Token service:会根据该用户在一个工程中的角色,为每一次的push/pull请求分配对应的token。假如相应的请求并没有包含token的话,registry会将该请求重定向到token service。
(4)Database :
用于存放工程元数据、用户数据、角色数据、同步策略以及镜像元数据。
(5)Job services:
主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。
(6)Log collector:
负责收集其他模块的日志到一个地方进行分析健康检查等
四、Harbor构建Docker私有仓库
实验环境
主机 | 操作系统 | 主机及主机IP | 软件 |
---|---|---|---|
服务端 | centos7 | Harbor/192.168.171.8 | docker、docker-compose、harbor-offline-v1.1.2、 |
客户端 | centos7 | client/192.168.171.17 | docker | <