Docker 镜像管理(四):harbor 项目学习

本文详细介绍了Harbor的架构概览,包括每个组件的作用,如proxy如何处理docker登录请求,以及registry的token认证流程。此外,还讲解了Harbor v1.9.4的编译构建过程,指导如何从Makefile开始构建镜像,并在make目录下启动Harbor。同时,提到了部署时proxy的配置文件和作用。

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

本篇目录

说明

Architecture Overview of Harbor 介绍了 harbor 每个组件的用途:

proxy: 反向代理,将请求代理到 harbor 的自服务
core:  harbor 的核心功能实现,操作页面上提供的绝大多数功能
       认证授权、配置管理、项目管理、配额管理、tag 管理、镜像扫描、webhook等
job:   任务队列
log:   日志收集
gc:    gc 管理
chart:     chart存放管理
registry:  docker镜像存放管理
notary:    内容鉴真

docker login 的过程:

  1. proxy 收到请求,转发给 registry;
  2. registry 配置了 token 认证,返回 401 告知 docker client 到 core 服务获取 token;
  3. docker client 发送用户名密码到 core 获取 token;
  4. core 解析用户密码完成认证。

编译构建

harbor 部署文件是一个 docker-compose.yml,各个组件被打包了镜像中,关键是找到 Docker 镜像的构建过程。

harbor v1.9.4 的编译构建过程:

$ docker pull golang:1.12.12
# NOTARYFLAG=true 和 CLAIRFLAG=true 可选
$ make install GOBUILDIMAGE=golang:1.12.12 COMPILETAG=compile_golangimage

查看 Makefile 可以知道镜像的构建文件位于 make/photon 目录中:

▾ make/
  ▸ kubernetes/
  ▸ migrations/
  ▾ photon/
    ▸ chartserver/
    ▸ clair/
    ▸ common/
    ▸ core/
    ▸ db/
    ▸ jobservice/
    ▸ log/
    ▸ nginx/
    ▸ notary/
    ▸ portal/
    ▸ prepare/
    ▸ redis/
    ▸ registry/
    ▸ registryctl/
      Makefile
    checkenv.sh*
    harbor.yml
    install.sh*
    prepare*
    pushimage.sh*

编译结束后,可以直接在 make 目录启动 harbor:

$ cd make
$ ./install.sh

proxy 代理

部署 harbor 的时候,会生成一个 common 目录,这个目录中存放的是各个组件的配置文件:

▾ common/config/
  ▸ core/
  ▸ db/
  ▸ jobservice/
  ▸ log/
  ▾ nginx/
    ▸ conf.d/
      nginx.conf
  ▸ registry/
  ▸ registryctl/

nginx/conf.d/nginx.conf 就是 nginx 使用转发配置:

 location / {
   proxy_pass http://portal/;
   ...
 location /c/ {
   proxy_pass http://core/c/;
   ...
 location /api/ {
   proxy_pass http://core/api/;
   ...
 location /chartrepo/ {
   proxy_pass http://core/chartrepo/;
   ...
 location /v1/ {
   return 404;
   ...
 location /v2/ {
   proxy_pass http://core/v2/;
   ...
 location /service/ {
   proxy_pass http://core/service/;
   ...
 location /service/notifications {
   return 404;

参考

  1. 李佶澳的博客
  2. Architecture Overview of Harbor
  3. harbor compile guide
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值