前言
之前整理過一篇基於docker安裝的Harbor的文章,但是在實際的運用中,發現那麼玩並不實用,根據後續的實用,這裏重新整理一個新的教程
準備
Docker安裝及docker-compose
可參考:CentOS 7下安裝Docker及基礎操作;Harbor的運行是通過docker-compose進行服務編排,所以這裏需要優先安裝好;
下載Harbor安裝包
- 版本查看
官方地址,選擇自己需要安裝的版本; - 下載
- 直接在上面的官網點擊下載
- wget安裝
// 第一步 找到上圖中對應版本的包,右鍵複製連接 // 在linux上通過以下指令 wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz
- 下載建議
建議將上面的地址拷貝出來,通過迅雷下載,速度會快很多,畢竟包有點大,咱的時間比較珍貴。
- 直接在上面的官網點擊下載
安裝
- 解壓
如果不是通過wget下載的,通過xftp將下載的包上傳到服務器/use/local下tar -zxvf harbor-offline-installer-v1.10.1.tgz
證書
- 獲取域名的SSL證書
這裏的域名格式如下: https://hub.youdname.com youdname表示你的域名
可以通過以下的方式得到SSL證書:
方式一(土豪推薦):花錢買
方式二(首選推薦):自簽名的泛域名證書;ACME.sh 使用指南,Let’s Encrypt的簽發使用;此方式會麻煩一些,但是申請的是泛域名的證書,一勞永逸,之後的所有二級域名都可以使用這個證書;並且證書會定時更新,不會過期;
方式三(推薦):通過騰訊雲或者阿里雲申請免費的證書,有效期爲一年;免費SSL證書實現https請求;免費沒法申請泛域名證書;但是申請起來會比較簡單,過期需要自己重新事情;// 成功之後可以得到以下兩個證書 1-hub.youdname.com.crt 2-hub.youdname.com.key
// 成功之後可以得到以下兩個證書 youdname.com.crt youdname.com.key
配置
- 進入解壓目錄
cd /usr/local/harbor // 創建用於保存數據的數據的目錄 mkdir -p /home/docker/harbor/data
- 修改harbor.yml 主需要修改以下配置
// 第一個參數,域名 hostname: hub.youdname.com // http的端口,建議不要設置爲8080,容易和其他服務衝突 http.port: 880 // https端口 https.port: 443 https.certificate: 你的ssl證書路徑/hub.youdname.com.crt https.private_key: 你的ssl證書路徑/hub.youdname.com.key // 管理員密碼 harbor_admin_password: 自己定義 // 數據庫密碼 database.password: 數據庫密碼,自己定義,也可以不該 // 存儲數據的路徑 data_volume: /home/docker/harbor/data(可更改)
- 啓動
啓動會分爲5步cd /usr/local/harbor ./install.sh
第一步:檢查Docker安裝
第二步:檢查docker-compose安裝
第三步:下載關聯的鏡像
第四步:初始化配置
第五步:啓動服務
- 獲取域名的SSL證書
Nginx代理配置
可以通過Nginx,統一入口,代理到Harbor的服務
-
配置
server { listen 80; listen 443 ssl; server_name hub.youdname.com(根據個人的解析修改) ssl on; ssl_certificate 你的ssl證書路徑/youdname.com.crt; ssl_certificate_key 你的ssl證書路徑/youdname.com.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_protocols TLSv1.1 TLSv1.2; client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads # required to avoid HTTP 411: see Issue #1486 (https://github.com/docker/docker/issues/1486) chunked_transfer_encoding on; upstream internal_docker_registry { server 192.168.1.123:443; # IP修改爲你安裝Harbor的地址 } location / { proxy_pass https://internal_docker_registry; proxy_read_timeout 90; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; 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 $scheme; proxy_cache_bypass $http_upgrade; } }
-
重啓NG
sbin/nginx -s reload
測試
- 訪問管理平臺
https://hub.youdname.com
- 推送測試
具體使用就不說啦,界面很整潔,管理平臺點吧點吧就知道怎麼用了;