Harbor容器镜像仓库搭建
目录
1 软件环境
| Software | Version |
|---|---|
| Docker Engine | 20.10.21 |
| Docker Compose | 1.29.2 |
| Openssl | 3.0.2 |
| Harbor | 2.8.0 |
2 安装Harbor
2.1 下载Harbor离线安装文件
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.tgz2.2 修改配置文件
官方文档:配置 Harbor YML 文件
cd harbor/
vi harbor.yml修改
hostname = 192.168.0.2这里只是简单的测试,所以只编辑这一行,其他的默认不做修改;可根据实际情况做修改!
当修改了 harbor.yml,但不想完整 install,只想重新生成 compose 文件。需要单独执行 prepare
2.2.1 配置 Trivy 镜像扫描
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 -dTrivy 离线扫描配置
如果你的 Harbor 完全无法访问外网,可以配置 Trivy 进行离线扫描。
trivy:
skip_update: true # 关闭在线更新缺陷数据库
skip_java_db_update: true # 关闭在线更新java缺陷数据库
# offline_scan: true # 在较新版本中,此选项可能不再需要,skip_update 已足够2.3 配置docker私有仓库
因为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.service2.4 安装harbor
./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 Succeeded3 版本升级
3.1 关闭Harbor
cd harbor
docker-compose down3.2 备份历史版本文件夹
mv /data/harbor /data/harbor.bak3.3 下载新版本
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.tgz3.4 修改配置文件
# 升级配置文件,通过 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.yml3.5 安装新版本
安装带有trivy服务--with-trivy
./install.sh --with-trivy4 Trivyb 离线漏洞库
4.1 指定镜像源拉取
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-db4.2 使用oras下载漏洞数据库
下载 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