Docker容器——harbor私有仓库部署与管理

目录

前言

一、Harbor的介绍

1、Harbor简介

2、Harbor的特性

3、Harbor的构成

3.1 六个组件的详细介绍

3.2 六个组件的简单介绍

二、Harbor的部署

1、环境准备

2、部署 Docker-Compose 服务

3、部署 Harbor 服务

3.1 下载或上传 Harbor 安装程序

3.2 修改harbor安装的配置文件

4、启动 Harbor

5、查看 Harbor 启动镜像

6、创建一个新项目

6.1 登录 Harbor

6.2 下载镜像进行测试

6.3 将镜像打标签

6.4 上传镜像到 Harbor

6.5 在 Harbor 界面 xkq 目录下可看见此镜像及相关信息

7、在其他客户端上传镜像

7.1 在 Docker 客户端配置操作

7.2 重启 Docker,再次登录

7.3 下载镜像进行测试

7.4 上传镜像进行测试

7.5 刷新 Harbor 的 Web 管理界面进行查看,会发现xkq项目里面有两个镜像

三、 维护管理Harbor

1、通过 Harbor Web 创建项目

2. 创建 Harbor 用户

2.1 创建用户并分配权限

2.2 添加项目成员

2.3 在客户端上使用普通账户操作镜像

3、查看日志

4、修改 Harbor.cfg 配置文件

5、移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移

5.1 移除 Harbor 服务容器

5.2 把项目中的镜像数据进行打包

6、如需重新部署,需要移除 Harbor 服务容器全部数据


前言

        云原生技术的兴起为企业数字化转型带来新的可能。作为云原生的要素之一,带来更为轻量级虚拟化的容器技术具有举足轻重的推动作用。Docker 的出现和兴起彻底带火了容器。其关键因素是 Docker 提供了使用容器的完整工具链,使得容器的上手和使用变得非常简单。工具链中的一个关键,就是定义了新的软件打包格式-容器镜像。镜像包含了软件运行所需要的包含基础 OS 在内的所有依赖,推送至运行时可直接启动。从镜像构建环境到运行环境,镜像的快速分发成为硬需求。同时,大量构建以及依赖的镜像的出现,也给镜像的维护管理带来挑战。镜像仓库的出现成为必然。

        镜像构建之后可以推送至仓库储存和管理,运行时环境在有应用运行需求时,从仓库拉取特定的应用镜像来运行。镜像仓库作为镜像的分发媒介,可以实现特定的管理和访问控制机制。仓库作为镜像传输流动的主要媒介,成为云原生应用平台运转的核心要件。Docker 开源了其 registry 实现, 目前已经成为 CNCF 的沙箱项目Distribution。不过,Distribution 项目仅仅实现了对镜像存储的支持,对企业级的一些管理诉求并无法提供支持。

        为了实现企业级镜像仓库的支持,Harbor 项目应运而生

一、Harbor的介绍

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。

2、Harbor的特性

  • 基于角色控制: 用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限
  • 基于镜像的复制策略: 镜像可以在多个Harbor实例之间进行复制(同步)
  • 支持LDAP/AD: Harbor 可以集成企业内部有的AD/LDAP (类似数据库的一-张表),用于对已经存在的用户认证和管理
  • 镜像删除和垃圾回收: 镜像可以被删除,也可以回收镜像占用的空间
  • 图形化用户界面: 用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理
  • 审计管理: 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理
  • 支持RESTful API: RESTful API提供给管理员对于Harbor 更多的操控,使得与其它管理软件集成变得更容易
  • Harbor 和docker registry的 关系: Harbor实质 上是对docker registry做 了封装,扩展了自己的业务模板

3、Harbor的构成

Harbor 在架构上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)、Job services 六个组件。

3.1 六个组件的详细介绍

Proxy: 是一个 nginx 的前端代理,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个服务:

  1. UI(harbor-ui): 提供图形化界面,帮助用户管理 Registry 上的镜像(image), 并对用户进行授权。
  2. WebHook:为了及时获取Registry上image 状态变化的情况,在Registry 上配置 Webhook,把状态变化传递给 UI 模块。
  3. Token 服务:负责根据用户权限给每个 Docker push/pull 命令签发 Token。Docker 客户端向 Registry 服务发起的请求, 如果不包含 Token,会被重定向到 Token 服务,获得 Token 后再重新向 Registry 进行请求。

Database(harbor-db):为core services提供数据库服务,负责储存用户权限、审计日志、Docker 镜像分组信息等数据。

Job services: 主要用于镜像复制,本地镜像可以被同步到远程 Harbor 实例上。

Log collector(harbor-log): 负责收集其他组件的日志到一个地方。

3.2 六个组件的简单介绍

(1)Proxy

  • 通过一个前置的反向代理统一接收浏览器、Docker 客户端的请
    求,并将请求转发给后端不同的服务
  • 这是一个反向代理组件

(2)Registry

  • 负责储存 Docker 镜像
  • 处理 docker push/pull 命令来上传和下载

(3)Core services

  • Harbor 的核心功能,包括UI、webhook、 token 服务
  • UI(harbor-ui): 提供图形化界面
  • webhook:网站的一些服务功能
  • token:令牌,提供身份验证服务

(4)Database

  • 为 core services 提供数据库服务
  • 数据库记录镜像的元信息及用户的身份信息

(5)Log collector

  • 负责收集其他组件的日志,以供然后进行分析
  • 健康检查等

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的部署

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值