Docker--harbor私有仓库部署与管理

本文详细介绍了Harbor,一个VMware开源的DockerRegistry增强版,涵盖了Harbor的简介、部署步骤、环境准备、配置管理以及核心组件和私有仓库的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Harbor 简介

1.1.Harbor是什么

1.2.Harbor的特性

1.3. Harbor的构成

二、Harbor 部署

2.1.环境准备

2.2.部署 Docker-Compose 服务

2.3.部署 Harbor 服务

2.3.1.修改harbor安装的配置文件

2.4.启动 Harbor

2.5.访问主机

2.5.1.添加项目并填写项目名称

2.6.通过127.0.0.1来登陆和推送镜像 

3.7.在其他客户端上传镜像

3.7.1.在 Docker 客户端配置操作

三、维护管理Harbor

3.1. 通过 Harbor Web 创建项目

3.2. 创建 Harbor 用户

3.3. 查看日志

3.4. 修改 Harbor.cfg 配置文件

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

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

4.1.docker核心组件

1. Proxy反向代理

2.Registry

3. Core services

4.Log collector

5. databases

6.Job services:

7. adminserver

4.2.docker Harbor私有仓库的过程


一、Harbor 简介

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的特性

1、基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。

2、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。

3、支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对

已经存在的用户认证和管理。

4、镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。

5、图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。

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

7、支持 RESTful API:RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件

集成变得更容易。

8、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 部署

2.1.环境准备

Harbor服务器 192.168.190.107 docker-ce、docker-compose、harbor-offline-v1.2.2

client服务器 192.168.190.108 docker-ce

2.2.部署 Docker-Compose 服务

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose    #下载安装包,我这里直接传入下载的安装包
 
chmod +x /usr/local/bin/docker-compose
 
docker-compose -v

打开IP转发功能

vim /etc/sysctl.conf 
sysctl -p
net.ipv4.ip_forward = 1

2.3.部署 Harbor 服务

下载或上传 Harbor 安装程序

wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz   #下载安装包,我这里传入下载的安装包
 
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

2.3.1.修改harbor安装的配置文件

vim /usr/local/harbor/harbor.cfg
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.190.108
--59行--指定管理员的初始密码,默
### 使用 Docker Compose 部署 Harbor 私有仓库的最佳实践 #### 准备工作 为了成功部署 Harbor,确保环境已经准备好必要的组件和服务。这包括但不限于: - 安装并配置好 DockerDocker Compose[^5]。 对于 Docker Compose 的安装可以采用如下命令: ```bash curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` 确认 Docker 已经正常运行,并设置为开机自启: ```bash systemctl start docker systemctl enable docker.service docker version ``` #### 下载 Harbor 并准备 `docker-compose.yml` 文件 下载适合版本的 Harbor,在官网获取最新版链接后通过 wget 或 curl 命令下载压缩包到本地机器上解压即可获得所需的文件夹结构以及默认配置好的 `docker-compose.yml` 文件[^3]。 例如: ```bash wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-offline-installer-v2.8.0.tgz tar xvf harbor-offline-installer-v2.8.0.tgz cd harbor ``` #### 修改配置文件 进入解压后的目录找到 `harbor.yml.example` 复制一份命名为 `harbor.yml` ,按照实际需求编辑此 YAML 格式的配置文档来定制化 Harbor 实例的各项参数如域名、证书路径等信息[^1]。 #### 启动服务 当一切就绪之后就可以利用 Docker Compose 来一键启动整个应用栈了。只需在包含上述提到的那个特定 YML 文件所在的同一级目录下执行下面这条简单的指令就能完成全部操作: ```bash docker-compose up -d ``` 此时应该能看到一系列容器被创建出来并且开始运作起来,代表你的私有镜像库已经开始提供服务了。 #### 测试连接 最后一步就是验证新建立的服务能否正常使用。可以通过浏览器访问指定地址查看 Web UI 是否能够加载显示;也可以尝试推送测试镜像至新建实例中去检验其功能是否完备无误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值