簡(jiǎn)單詳細(xì)的harbor搭建

前期準(zhǔn)備

  1. 離線包下載: https://github.com/goharbor/harbor/releases/tag/v1.8.5
  • 選擇 572MB的tgz
  • 聽說1.7.6好像有漏洞,保險(xiǎn)起見我選擇1.8.5
  1. 注意最低安裝需求


    在這里插入圖片描述

安裝步驟

  1. 安裝docker,先配置下源,再安裝特定版本docker(參考文檔有要求)


    在這里插入圖片描述
  • 配置阿里源:
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    
  • 安裝docker 18:
    yum -y install docker-ce-18.06.1.ce-3.el7
    
  1. 安裝dockercompose,參考文檔:https://github.com/docker/compose/releases/tag/1.25.4
  • 依次執(zhí)行以下命令:
        curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
        chmod +x /usr/local/bin/docker-compose
    
  1. 解壓harbor軟件包,并配置cfg文件

        tar xf harbor-offline-installer-v1.8.5.tgz -C /opt/
    

    下圖紅框處修改
    hostname:可以改成IP,域名【本文使用IP】
    本文中所有的yourdomain.com都需要改成你服務(wù)器的IP
    port避免和nginx沖突,改成非80即可,本文改為1080
    其余密碼按需更改

    在這里插入圖片描述

  2. 執(zhí)行harbor下安裝命令

        ./install.sh
    
  3. 安裝nginx

        yum -y install nginx
    
  4. 編輯nginx配置文件:vim /etc/nginx/conf.d/yourdomain.com.conf,文件內(nèi)容如下:

    server {
            listen          80;
            server_name     yourdomain.com;
            client_max_body_size    1000m;
            location / {
                    proxy_pass http://127.0.0.1:1080;
            }
    }

配置HTTPS(重點(diǎn))

  • 生成證書頒發(fā)機(jī)構(gòu)證書
  1. 生成CA證書私鑰
    openssl genrsa -out ca.key 4096
  1. 生成CA證書
    openssl req -x509 -new -nodes -sha512 -days 3650 \
            -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
            -key ca.key \
            -out ca.crt
  • 生成服務(wù)器證書
  1. 生成私鑰
    openssl genrsa -out yourdomain.com.key 4096
  1. 生成證書簽名請(qǐng)求(CSR)
    openssl req -x509 -new -nodes -sha512 -days 3650 \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
    -key ca.key \
    -out ca.crt
  1. 生成一個(gè)x509 v3擴(kuò)展文件
   cat > v3.ext <<-EOF
   authorityKeyIdentifier=keyid,issuer
   basicConstraints=CA:FALSE
   keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
   extendedKeyUsage = serverAuth
   subjectAltName = IP:yourdomain.com
   EOF
  1. 使用該v3.ext文件為您的Harbor主機(jī)生成證書
   openssl x509 -req -sha512 -days 3650 \
       -extfile v3.ext \
       -CA ca.crt -CAkey ca.key -CAcreateserial \
       -in yourdomain.com.csr \
       -out yourdomain.com.crt
  • 提供證書給Harbor和Docker
  1. 創(chuàng)建文件夾
   mkdir -p /data/cert/
  1. 復(fù)制證書秘鑰到cert文件夾中
   cp yourdomain.com.crt /data/cert/
       cp yourdomain.com.key /data/cert/
  1. 轉(zhuǎn)換yourdomain.com.crt為yourdomain.com.cert,供Docker使用
       openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
  1. 創(chuàng)建存放秘鑰和CA文件的文件夾
    mkdir -p /etc/docker/certs.d/yourdomain.com/
  1. 將服務(wù)器證書,密鑰和CA文件復(fù)制到Harbor主機(jī)上的Docker證書文件夾
    cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
    cp yourdomain.com.key /etc/docker/certs.d/yourdomain.com/
    cp ca.crt /etc/docker/certs.d/yourdomain.com/
  1. 重啟docker
    systemctl restart docker
  1. 修改harbor.yml文件中的秘鑰選項(xiàng),把默認(rèn)的注釋掉,修改為自己配置的/data/cert/
    #  certificate: /your/certificate/path
    #  private_key: /your/private/key/path
    certificate: /data/cert/49.235.207.16.crt
    private_key: /data/cert/49.235.207.16.key
  1. 執(zhí)行prepare以啟用https
    ./prepare
  1. 通過docker-compose啟動(dòng)harbor
    docker-compose up -d

10.重啟nginx并開機(jī)啟動(dòng)

    systemctl restart nginx
    systemctl enable nginx

驗(yàn)證harbor

  1. 服務(wù)器中驗(yàn)證
    docker login yourdomain.com
  • 根據(jù)提示輸入harbor.yml中配置的密碼即可
  1. 瀏覽器中驗(yàn)證:輸入 “yourdomain.com”,不安全添加例外即可。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容