基於Docker安裝Harbor搭建Docker私有倉庫

前言

之前整理過一篇基於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的簽發使用;此方式會麻煩一些,但是申請的是泛域名的證書,一勞永逸,之後的所有二級域名都可以使用這個證書;並且證書會定時更新,不會過期;
      // 成功之後可以得到以下兩個證書
      1-hub.youdname.com.crt
      2-hub.youdname.com.key
      
      方式三(推薦):通過騰訊雲或者阿里雲申請免費的證書,有效期爲一年;免費SSL證書實現https請求;免費沒法申請泛域名證書;但是申請起來會比較簡單,過期需要自己重新事情;
      // 成功之後可以得到以下兩個證書
      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(可更改)
      
    • 啓動
      cd /usr/local/harbor
      ./install.sh
      
      啓動會分爲5步
      第一步:檢查Docker安裝
      第二步:檢查docker-compose安裝
      第三步:下載關聯的鏡像

      第四步:初始化配置
      第五步:啓動服務

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

  • 推送測試

    具體使用就不說啦,界面很整潔,管理平臺點吧點吧就知道怎麼用了;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章