508 字
3 分钟
搭建 Harbor 私有镜像仓库
环境
- 服务器:
192.168.100.14,已装好 Docker - 域名:
reg.westos.org(内网域名)
生成证书
Harbor 需要 HTTPS,先生成自签名证书。
mkdir certsopenssl req -newkey rsa:4096 -nodes -sha256 \ -keyout certs/westos.org.key \ -addext "subjectAltName = DNS:reg.westos.org" \ -x509 -days 365 \ -out certs/westos.org.crt然后把证书复制到 /data 目录,Harbor 会从这里读取:
mkdir /datacp -r certs /data安装 Harbor
去 Harbor Release 下载离线安装包:
wget https://github.com/goharbor/harbor/releases/download/v2.14.0/harbor-offline-installer-v2.14.0.tgztar zxf harbor-offline-installer-v2.14.0.tgzcd harbor/复制配置模板并修改:
cp harbor.yml.tmpl harbor.ymlvim harbor.yml主要改这几个地方:
hostname: reg.westos.org
http: port: 80
https: port: 443 certificate: /data/certs/westos.org.crt private_key: /data/certs/westos.org.key
harbor_admin_password: 12345 # 改成你的密码执行安装,带上 --with-trivy 参数会一起安装漏洞扫描工具:
./install.sh --with-trivy等一会儿,看到 Harbor has been installed and started successfully 就好了。
Docker 客户端配置
直接 docker login 会报证书错误,因为是自签名的。需要让 Docker 信任这个证书:
mkdir -p /etc/docker/certs.d/reg.westos.orgcp /data/certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crtsystemctl restart docker
# 重启后 Harbor 也要重新启动cd ~/harbordocker compose up -d现在可以登录了:
docker login reg.westos.org# Username: admin# Password: 12345使用
浏览器访问 https://reg.westos.org,用 admin 账户登录。
先创建一个项目,比如叫 myproject,选私有。
然后试着推送一个镜像:
docker pull nginx:latestdocker tag nginx:latest reg.westos.org/myproject/nginx:v1.0docker push reg.westos.org/myproject/nginx:v1.0在 Web 界面里就能看到推送的镜像了。
拉取也很简单:
docker pull reg.westos.org/myproject/nginx:v1.0Trivy 扫描问题
在 Web 界面点”扫描”按钮的时候,Trivy 会报错说下载不了漏洞库。因为它要从 GitHub 拉数据,国内网络不太行。
解决办法是给它配个代理:
cd ~/harborvim ./common/config/trivy-adapter/env加上代理配置(换成你自己的代理地址):
HTTP_PROXY=http://192.168.10.141:7897HTTPS_PROXY=http://192.168.10.141:7897然后重启:
docker compose downdocker compose up -d现在扫描应该能正常工作了。扫描结果会显示镜像里有哪些漏洞,方便评估风险。
其他机器使用
如果其他机器要用这个仓库,需要:
- 配置域名解析(
/etc/hosts或 DNS) - 复制证书到客户端:
Terminal window scp root@192.168.100.14:/data/certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt - 登录即可
就这样,基本的 Harbor 仓库就搭好了。
搭建 Harbor 私有镜像仓库
https://dev-null-sec.github.io/posts/搭建harbor私有镜像仓库/