侧边栏壁纸
博主头像
duan6666的blog

行动起来,活在当下

  • 累计撰写 7 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Harbor安装与反向代理

duan6666
2024-12-13 / 0 评论 / 0 点赞 / 60 阅读 / 0 字
温馨提示:
本文最后更新于2025-01-02,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

本教程使用离线安装

前置条件:安装DockerDocker-Compose

演示系统为lxc-debian

apt update && apt install docker.io docker-compose curl wget vim -y

1. 下载安装包

访问其项目地址
写这篇文章时,最新版本为v2.11.2
本文便以此版本为例安装

wget https://github.com/goharbor/harbor/releases/download/v2.11.2/harbor-offline-installer-v2.11.2.tgz

2. 编辑配置文件

解压压缩包到当前目录并进入目录

tar -zxf harbor-offline-installer-v2.11.2.tgz && cd harbor

将其自带的演示模板复制一份并编辑

cp harbor.yml.tmpl harbor.yml
vim harbor.yml

注释掉https部分

#https:  
  #port:  443  
  #certificate:  /your/certificate/path  
  #private_key:  /your/private/key/path

取消注释外部访问url以实现代理后,外部仅https便可访问仓库,而不是仅可访问web
原内容为https://reg.mydomain.com:8433

external_url: https://hub.duan6666.top

更改部分内容
这里我仅修改主机名为hub.duan6666.top用于演示
原内容为reg.mydomain.com

# 主机名部分不需要携带端口
hostname:  hub.duan6666.top
# 更改网页端管理员密码
harbor_admin_password:  Harbor12345
# 更改数据库密码
database:  
  password:  root123
# 更改数据存放目录
data_volume:  /data

3. 开始安装

使用install.sh开始安装

./install.sh

安装完成后修改nginx配置文件

vim common/config/nginx/nginx.conf

注释掉部分配置:
每一个location块中的X-Forwarded-Proto

# proxy_set_header  X-Forwarded-Proto  $x_forwarded_proto;

重启harbornginx以应用配置

docker restart nginx

注意,日后务必不要使用最初安装时使用的install.sh进行安装
再次安装时,将会清空nginx配置文件并重新部署
若重新安装,请重复此安装步骤,注释X-Forwarded-Proto部分内容

4.配置反向代理

进入Nginx Proxy Manager 登入后点击Add Proxy Host

若不知道如何安装,请看这里

填写你的域名和想要代理的主机

配置SSL

点击Advanced进行高级配置
填写以下内容,并保存

location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Uri $request_uri;
    proxy_set_header X-Forwarded-Ssl on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Accept-Encoding gzip;
    client_body_buffer_size 128k;
    client_max_body_size 0;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
    proxy_redirect http:// $scheme://;
    proxy_http_version 1.1;
    proxy_cache_bypass $cookie_session;
    proxy_no_cache $cookie_session;
    proxy_buffers 64 256k;
    send_timeout 5m;
    proxy_read_timeout 360;
    proxy_send_timeout 360;
    proxy_connect_timeout 360;
    proxy_pass $forward_scheme://$server:$port;
}

5.测试Harbor是否可用

  • 使用浏览器,填入域名,查看是否正常显示
  • 填入账号密码,查看是否正常登陆

  • 测试是否能够推送镜像

从其他仓库拉取nginx

docker pull docker.duan6666.top/nginx

查看拉取的镜像ID

docker images

镜像ID为66f8bdd3810c

REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
docker.duan6666.top/nginx       latest    66f8bdd3810c   2 weeks ago   192MB

给这个镜像重新打标签,标签为:你的源/仓库/镜像

docker tag 66f8bdd3810c hub.duan6666.top/library/nginx

再次查看镜像标签

docker images

这个镜像ID同时拥有两个标签

REPOSITORY                       TAG       IMAGE ID       CREATED       SIZE
docker.duan6666.top/nginx        latest    66f8bdd3810c   2 weeks ago   192MB
hub.duan6666.top/library/nginx   latest    66f8bdd3810c   2 weeks ago   192MB

使用docker login登入我们的harbor

docker login hub.duan6666.top

输入账号密码

Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

已经显示登陆成功
推送刚才打好标签的镜像以测试是否能够推送

docker push hub.duan6666.top/library/nginx 

可以看到已经成功推送了镜像

docker push hub.duan6666.top/library/nginx 
Using default tag: latest
The push refers to repository [hub.duan6666.top/library/nginx]
d32d820bcf1c: Pushed 
c28e0f7d0cc5: Pushed 
8aa4787aa17a: Pushed 
b060cc3bd13c: Pushed 
2c3a053d7b67: Pushed 
fc00b055de35: Pushed 
c0f1022b22a9: Pushed 
latest: digest: sha256:10d5e08c653bc46286c2e4eaa095783d14be6486825fea247efab07ab329cda0 size: 1778
  • 再测试一下是否能再次拉取镜像

先删除之前的从仓库拉取的nginx镜像(-f强制删除)

docker rmi 66f8bdd3810c -f      
Untagged: docker.duan6666.top/nginx:latest
Untagged: docker.duan6666.top/nginx@sha256:fb197595ebe76b9c0c14ab68159fd3c08bd067ec62300583543f0ebda353b5be
Untagged: hub.duan6666.top/library/nginx:latest
Untagged: hub.duan6666.top/library/nginx@sha256:10d5e08c653bc46286c2e4eaa095783d14be6486825fea247efab07ab329cda0
Deleted: sha256:66f8bdd3810c96dc5c28aec39583af731b34a2cd99471530f53c8794ed5b423e
Deleted: sha256:861885804cea72da66a857f56e2d08ef29d8db273745d46e9f192553362b943d
Deleted: sha256:bced374ce582002f98d19b5a73a4acd9945fed7ed80222c4a3f9ecd6debdfbea
Deleted: sha256:b3057aca5d4f2d9f34b63f2fa532d7164c42daf3c6741ab3baef4afee5310579
Deleted: sha256:721c11eb2640980a3d5de69cb15c3f86484cf9070ef623720a54d03f699656dc
Deleted: sha256:f141f959fda67ad077ac28920ad56ca36ef7cb54fe437559a18d62075afc2cd6
Deleted: sha256:d0edcb20c85bbe98d67cb15ed1ec313958d9fff0834e5cf8aa64cb30e48790c7
Deleted: sha256:c0f1022b22a9b36851b358f44e5475e39d166e71a8073cf53c894a299239b1c5

尝试使用刚刚部署的harbor仓库拉取刚刚推送的镜像

docker pull hub.duan6666.top/library/nginx

可以看到我们成功从我们的仓库拉取

Using default tag: latest
latest: Pulling from library/nginx
8cf9fb7a0b56: Pull complete 
650ee30bbe5e: Pull complete 
8cc1569e58f5: Pull complete 
362f35df001b: Pull complete 
13e320bf29cd: Pull complete 
7b50399908e1: Pull complete 
57b64962dd94: Pull complete 
Digest: sha256:10d5e08c653bc46286c2e4eaa095783d14be6486825fea247efab07ab329cda0
Status: Downloaded newer image for hub.duan6666.top/library/nginx:latest
hub.duan6666.top/library/nginx:latest
0

评论区