Harbor是一個開源的本地部署的容器鏡像注冊中心, 帶訪問權限控制, 以及管理界面. 作用類似於Java中Maven的私有倉庫Nexus, 用於配合Jenkins在部署容器到K8s時提供鏡像源, 加快創建速度, 同時其內網屬性也能在很大程度上保證私有項目的代碼安全.
准備工作
目標服務器為Ubuntu18.04 Server, 已經安裝並配置好Docker.
Harbor項目地址: https://github.com/goharbor/harbor
Harbor安裝說明: https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
下載offline安裝包: https://github.com/vmware/harbor/releases
安裝說明
Harbor支持K8s部署, 但一般還是建議單獨部署.
Harbor的安裝, 實際上是將一系列的容器安裝到本地的docker, 其中包含了Nginx, PostgreSQL, Redis以及log服務. 而offline安裝包中已經包含這些容器鏡像, 避免安裝時再下載.
解壓后修改harbor.yml, 默認只需要修改hostname為當前主機IP
wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz tar zxvf harbor-offline-installer-v1.9.4.tgz cd harbor/ vi harbor.yml
安裝
sudo ./install.sh
安裝之后, 就可以用harbor.yml中配置的hostname和端口來訪問了. 默認的用戶是admin / Harbor12345
安裝后啟動的容器
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c045e8393514 goharbor/harbor-jobservice:v1.9.4 "/harbor/harbor_jobs…" 7 minutes ago Up 7 minutes (healthy) harbor-jobservice 9a3d65e5cdb0 goharbor/nginx-photon:v1.9.4 "nginx -g 'daemon of…" 7 minutes ago Up 7 minutes (healthy) 0.0.0.0:10080->8080/tcp nginx 44fc38b22688 goharbor/harbor-core:v1.9.4 "/harbor/harbor_core" 7 minutes ago Up 7 minutes (healthy) harbor-core 4224ea0eb383 goharbor/harbor-registryctl:v1.9.4 "/harbor/start.sh" 8 minutes ago Up 7 minutes (healthy) registryctl 772f94b49468 goharbor/registry-photon:v2.7.1-patch-2819-2553-v1.9.4 "/entrypoint.sh /etc…" 8 minutes ago Up 7 minutes (healthy) 5000/tcp registry 795c283eebcd goharbor/redis-photon:v1.9.4 "redis-server /etc/r…" 8 minutes ago Up 7 minutes (healthy) 6379/tcp redis a7050eeaf864 goharbor/harbor-db:v1.9.4 "/docker-entrypoint.…" 8 minutes ago Up 8 minutes (healthy) 5432/tcp harbor-db 0159e6e4a9ec goharbor/harbor-portal:v1.9.4 "nginx -g 'daemon of…" 8 minutes ago Up 7 minutes (healthy) 8080/tcp harbor-portal 2fcc5620820a goharbor/harbor-log:v1.9.4 "/bin/sh -c /usr/loc…" 8 minutes ago Up 8 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log
Harbor可以使用外部的PostgreSQL, 可以使用外部存儲, 可以使用雲存儲azure, gcs, s3, swift, oss, 可以將日志推送到外部syslog服務器.
修改配置
修改配置需要先停止Harbor服務, 再修改harbor.yml, 最后啟動Harbor服務
# 停止服務 sudo docker-compose down -v # 修改 vi harbor.yml # 應用 sudo ./prepare # 啟動服務 sudo docker-compose up -d