目录

Harbor容器镜像仓库搭建

SoftwareVersion
Docker Engine20.10.21
Docker Compose1.29.2
Openssl3.0.2
Harbor2.8.0

下载页面

wget https://storage.googleapis.com/harbor-releases/release-2.8.0/harbor-offline-installer-v2.8.0.tgz

解压

tar -xvf harbor-offline-installer-v2.8.0.tgz

官方文档:配置 Harbor YML 文件

cd harbor/
vi harbor.yml

修改

hostname = 192.168.0.2

这里只是简单的测试,所以只编辑这一行,其他的默认不做修改;可根据实际情况做修改!

当修改了 harbor.yml,但不想完整 install,只想重新生成 compose 文件。需要单独执行 prepare

Trivy 用于扫描镜像中的安全漏洞。默认情况下,它会从 GitHub 等源更新漏洞数据库。如果你的服务器访问这些源速度慢,可以配置国内镜像源。

修改 Trivy配置,添加或修改以下行:

需要版本 2.15.0,PR #21193

trivy:
  # OCI repository to retrieve the trivy vulnerability database from.
  db_repository: ghcr.nju.edu.cn/ghcr.io/aquasecurity/trivy-db
  # OCI repository to retrieve the Java trivy vulnerability database from.
  java_db_repository: ghcr.nju.edu.cn/ghcr.io/aquasecurity/trivy-java-db

重启服务

docker-compose down
docker-compose up -d

Trivy 离线扫描配置

如果你的 Harbor 完全无法访问外网,可以配置 Trivy 进行离线扫描。

trivy:
  skip_update: true # 关闭在线更新缺陷数据库
  skip_java_db_update: true # 关闭在线更新java缺陷数据库
  # offline_scan: true # 在较新版本中,此选项可能不再需要,skip_update 已足够

因为docker默认使用的是https连接,而harbor默认使用http连接,所以需要修改docker配置标志insecure registry不安全仓库的主机。当然,harbor也可以设置为https

添加私有仓库地址

cat << EOF >>/etc/docker/daemon.json
{
    "insecure-registries": ["192.168.1.10"]
}
EOF

重启docker

systemctl daemon-reload
systemctl restart docker.service
./instsall.sh

安装带有 Trivy 服务,添加参数运行 install.sh

./install.sh --with-trivy

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at https://harbor.qmerry.com. 
For more details, please visit https://github.com/vmware/harbor .

到这里基本就安装成功了!

安装完成后会生成如下6个容器:

docker ps

6、验证

打开浏览器访问:http://192.168.1.10

登录私有仓库

docker login 192.168.1.10
Username: admin
Password:	#(默认密码为:Harbor12345,可在harbor.yml文件中修改)

Login Succeeded
cd harbor
docker-compose down
mv /data/harbor /data/harbor.bak
wget https://github.com/goharbor/harbor/releases/download/v2.14.2/harbor-offline-installer-v2.14.2.tgz
tar -xf harbor-offline-installer-v2.14.2.tgz
# 升级配置文件,通过 goharbor/prepare 自动将配置合并至新版本
docker pull goharbor/prepare:v2.14.2
cp /data/harbor.bak/harbor.yml /data/harbor/harbor.yml
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.14.2 migrate -i /data/harbor/harbor.yml

安装带有trivy服务--with-trivy

./install.sh --with-trivy
docker exec trivy-adapter trivy image --download-db-only --db-repository ghcr.nju.edu.cn/ghcr.io/aquasecurity/trivy-db
docker exec trivy-adapter trivy image --download-java-db-only --java-db-repository ghcr.nju.edu.cn/ghcr.io/aquasecurity/trivy-java-db

下载 oras

wget https://github.com/oras-project/oras/releases/download/v1.1.0/oras_1.1.0_linux_amd64.tar.gz
tar -xf oras_1.1.0_linux_amd64.tar.gz
mv oras /usr/local/bin/
chmod +x /usr/local/bin/oras 

进入 trivy 目录

cd /data/{harbor_data}/trivy-adapter/trivy/

下载 trivy-db 离线库

oras pull ghcr.io/aquasecurity/trivy-db:2
oras pull ghcr.nju.edu.cn/ghcr.io/aquasecurity/trivy-db:2

下载 trivy-java-db 离线库

oras pull ghcr.io/aquasecurity/trivy-java-db:1
oras pull ghcr.nju.edu.cn/ghcr.io/aquasecurity/trivy-java-db:1

{harbor_data}替换为你的 harbor 数据目录

解压离线库

tar -xf db.tar.gz -C db
tar -xf javadb.tar.gz -C java-db
rm -f db.tar.gz javadb.tar.gz
chown -R 10000:10000 db java-db

相关内容