本教程使用离线安装
前置条件:安装Docker
和Docker-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;
重启harbor
的nginx
以应用配置
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
评论区