Docker Harbor概述及构建

目录

一、Docker Harbor概述

1.1 Harbor的优势

1.2 Harbor的核心组件

1.2.1 Proxy

1.2.2 Registry

1.2.3 Core services

1.2.4 Database

1.2.5 Log collector

二、Docker Harbor私有仓库架构拓扑

三、Haebor构建Docker私有仓库

3.1 环境配置

3.2 案例需求 

3.3 部署Harbor服务

3.4 此时可真机访问serverIP

3.5 添加项目并填写项目名称 

3.6 通过127.0.0.1来登录和推送镜像 

3.7 维护管理Harbor 

3.8 创建Harbor用户

3.9 移除Harbor服务容器同时保留镜像数据/数据库


一、Docker Harbor概述

  • 有可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能
  • Harbor是VMware公司开源的企业级Docker Registry项目

1.1 Harbor的优势

  • 基于角色控制:有管理员与普通用户,可赋权普通用户,比如只能上传和下载,可根据项目来进行操作和管理
  • 基于镜像的复制策略:也与权限相关,比如有只一些用户与组才能对此项目进行相对应的操作
  • 支持 LDAP/AD:域控制,比如南京去下载北京 harbor 私有仓库的镜像,两端打上局域网的地址,连接在一块,数据信息的传输通过一条隧道,会通过两层加密,第一层为隧道加密,第二层为数据加密,安全可靠
  • 图像删除和垃圾收集:即回收站机制
  • 图形 UI:具有统计功能,比如访问量与镜像下载热度
  • 审计:日志,这里意义不大,主要还是借助于 ELK
  • RESTful API:定义 Web 语言规范的格式,方便调用 Harbor 的接口,也便于二次开发

1.2 Harbor的核心组件

1.2.1 Proxy

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

1.2.2 Registry

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

1.2.3 Core services

  • Harbor 的核心功能,包括UI、webhook、 token 服务
  • webhook:网站的一些服务功能
  • token:令牌,提供身份验证服务

1.2.4 Database

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

1.2.5 Log collector

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

二、Docker Harbor私有仓库架构拓扑

  1. 所有的请求或认为的操作都会首先交给proxy(反向代理)
  2. proxy会先将请求转发给后端Core services,Core services 中包含 UI、token(身份验证服务)、webhook(网站的一些服务功能)
  3. 转发给registry(镜像存储),若需要下载镜像等权限操作,需要通过Core services中的token令牌的身份验证服务才行
  4. 每一次下载和上传都产生操作记录,生成日志,保存至database中
  5. database记录保存镜像的元信息及用户与组的身份信息,通过验证授权才能允许相关操作

三、Haebor构建Docker私有仓库

3.1 环境配置

主机操作系统IP地址软件
serverCentOS7.6192.168.152.16docker、docker-compose、harbor-offline-v1.1.2
clientCentOS7.6192.168.152.17

docker

3.2 案例需求 

通过Harbor创建Docker私有仓库
图形化管理Docker私有仓库镜像

3.3 部署Harbor服务

Harbor 被部署为多个 Docker 容器,因此可以部署在任何支持 Docker 的 Linux 发行版 上。
服务端主机需要安装 Python、Docker 和 Docker Compose。

cd /usr/local
rz docker-compose
chmod +x docker-compose
mv docker-compose /usr/bin

rz harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
 
==配置Harbor参数文件==
vim /usr/local/harbor/harbor.cfg
 
==第5行修改==
hostname = 192.168.152.16


sh /usr/local/harbor/install.sh


docker ps
docker images

docker-compose ps

3.4 此时可真机访问serverIP

192.168.152.16
用户名:admin
密码:Harbor12345


3.5 添加项目并填写项目名称 


3.6 通过127.0.0.1来登录和推送镜像 

此时可使用 Docker 命令在本地通过 127.0.0.1 来登录和推送镜像。默认情况下,
Register 服务器在端口 80 上侦听

#登陆
docker login -u admin -p Harbor12345 http://127.0.0.1
 
#下载镜像进行测试
docker pull tomcat
 
#镜像打标签
docker tag tomcat 127.0.0.1/project1/tomcat:v1
 
#上传镜像到Harbor
docker push 127.0.0.1/project1/tomcat:v1

查看图形化界面 


以上操作都是在 Harbor 服务器本地操作。如果其他客户端上传镜像到 Harbor,就会报如下错误。出现这问题的原因 Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。

解决方法

vim /usr/lib/systemd/system/docker.service
13行添加  --insecure-registry serverIP

systemctl daemon-reload
systemctl restart docker

docker pull nginx
docker tag nginx:latest 192.168.152.16/project1/nginx:v1
docker push 192.168.152.16/project1/nginx:v1

 图形界面查看

3.7 维护管理Harbor 

可以使用 docker-compose 来管理 Harbor。一些有用的命令如下所示,必须在与
docker-compose.yml 相同的目录中运行。

修改 Harbor.cfg 配置文件
要更改 Harbour 的配置文件时,请先停止现有的 Harbour 实例并更新 Harbor.cfg;然
后运行 prepare 脚本来填充配置;最后重新创建并启动 Harbour 的实例。

#卸载
docker-compose down -v
 
#编辑配置文件 
vim harbor.cfg
 
#填充配置
./prepare
 
#启动Harbor
docker-compose up -d
 
#如果报错
解决思路
关闭防火墙、重启docker
systemctl stop firewalld
setenfore 0
systemctl restart docker

3.8 创建Harbor用户




client操作

docker logout 192.168.152.16
docker login 192.168.152.16
fanlei
Harbor12345
 
docker images
docker rmi 192.168.152.16/project1/nginx:v1
docker pull 192.168.152.16/project1/nginx:v1

 

图形化界面访问

3.9 移除Harbor服务容器同时保留镜像数据/数据库

在server上进行操作

docker-compose down -v
 
#如果需要重新部署,需要移除Harbor服务容器全部数据
#持久数据,如镜像,数据库等在宿主机的/data目录下,日志在宿主机的/var/log/Harbor目录下
rm -rf /data/database
rm -rf /data/registry

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,服务器配置Docker Harbor的步骤如下: 1. 在Harbor服务器上安装DockerDocker Compose。 2. 下载并安装Harbor。 3. 修改Harbor的配置文件harbor.cfg,可以使用vim编辑器进行修改。 4. 运行prepare脚本来填充配置。 5. 重新创建并启动Harbor实例,可以使用docker-compose up -d命令来启动。 6. 如果遇到报错,可以尝试关闭防火墙和重启Docker服务来解决。 以上是配置Docker Harbor服务器的基本步骤。如果需要创建Harbor用户,可以参考引用\[3\]中的内容进行操作。 #### 引用[.reference_title] - *1* [Docker-Harbor配置和管理](https://blog.csdn.net/sjc090132/article/details/127484900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Docker Harbor 安装与https配置](https://blog.csdn.net/cxzchen/article/details/108234449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Docker Harbor概述构建](https://blog.csdn.net/qq_44363920/article/details/125993650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值