主题
1、简介
Harbor 是 VMware 开源的企业级 Docker 镜像仓库,支持:
- 镜像管理(push/pull)
- 用户权限控制
- 项目隔离
- 镜像漏洞扫描(Trivy)
- Web UI 管理
2、安装docker和docker-compose
安装docker和docker-compose 过程省略
3、下载并安装Harbor
3.1 下载最新版harbor并解压至/root下
bash
URL=$(curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | grep offline | head -n 1 | cut -d '"' -f 4) && cd /root && wget -O harbor.tgz "$URL" && tar -zxvf harbor.tgz3.2 修改核心配置文件
bash
mkdir /home/application/harbor -p
cp /root/harbor/harbor.yml.tmpl /home/application/harbor/harbor.yml
vim /home/application/harbor/harbor.yml配置内容
bash
hostname: harbor.demo.net
#https关闭,由nginx代理后转发到harbor的nginx
#https:
# port: 443
# certificate: /your/certificate/path
# private_key: /your/private/key/path
external_url: https://harbor.demo.net
harbor_admin_password: Changeme1234
database:
password: Changeme2026
#配置harbor数据持久化路径
data_volume: /home/application/harbor/data
#配置trivy,该配置项为2.15新增2.15之前无此配置项
trivy:
# OCI repository to retrieve the trivy vulnerability database from.
db_repository: ghcr.nju.edu.cn/aquasecurity/trivy-db
# OCI repository to retrieve the Java trivy vulnerability database from.
java_db_repository: ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1
#配置harbor日志持久化路径
log:
local:
location: /home/application/harbor/log
#与前面https相对应
proxy:
# https_proxy:3.3 自动渲染docker-compose,安装harbor
bash
#配置环境变量
export HARBOR_BUNDLE_DIR=/home/application/harbor
#安装harbor并开启trivy
/root/harbor/install.sh --with-trivy3.4 外层nginx配置
bash
server {
listen 80;
server_name harbor.demo.net;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name harbor.demo.net;
root /usr/share/nginx/html;
# SSL 配置
include /home/application/nginx/conf.d/cert.ssl;
client_max_body_size 0;
location / {
proxy_pass http://1.1.1.1:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_request_buffering off;
}
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}4、验证docker容器
bash
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
322b58430770 goharbor/nginx-photon:v2.15.1 "nginx -g 'daemon of…" 9 days ago Up 9 days (healthy) 0.0.0.0:80->8080/tcp, [::]:80->8080/tcp nginx
4d43ee5d8f89 goharbor/harbor-jobservice:v2.15.1 "/harbor/entrypoint.…" 9 days ago Up 9 days (healthy) harbor-jobservice
62df48ca7bbf goharbor/harbor-core:v2.15.1 "/harbor/entrypoint.…" 9 days ago Up 9 days (healthy) harbor-core
70620911cb41 goharbor/trivy-adapter-photon:v2.15.1 "/home/scanner/entry…" 9 days ago Up 9 days (healthy) trivy-adapter
e982e6b518b9 goharbor/harbor-db:v2.15.1 "/docker-entrypoint.…" 9 days ago Up 9 days (healthy) harbor-db
2c8b671d1ec4 goharbor/harbor-portal:v2.15.1 "nginx -g 'daemon of…" 9 days ago Up 9 days (healthy) harbor-portal
ee47dac9ba09 goharbor/harbor-registryctl:v2.15.1 "/home/harbor/start.…" 9 days ago Up 9 days (healthy) registryctl
5786e5376e06 goharbor/redis-photon:v2.15.1 "redis-server /etc/r…" 9 days ago Up 9 days (healthy) redis
3f75d1f5dee8 goharbor/registry-photon:v2.15.1 "/home/harbor/entryp…" 9 days ago Up 9 days (healthy) registry
33a94f9f7e23 goharbor/harbor-log:v2.15.1 "/bin/sh -c /usr/loc…" 9 days ago Up 9 days (healthy) 127.0.0.1:1514->10514/tcp harbor-log5、登录harbor控制台
使用域名登录控制台
https://harbor.demo.net
用户名为:admin
密码为配置文件中的 harbor_admin_password: Changeme1234
6、从旧harbor迁移镜像至新harbor
6.1 新建仓库

6.2 新建复制规则

6.3 开始复制和查看复制进度


