Google Code Prettify

2020年4月10日 星期五

安裝 Harbor (Ubuntu)

Docker 官方的 docker registry 是 Docker Hub,以金融業來說,不可能將 docker image 放到公司外部,自建一個私有的 docker registry 就成為必要的需求,Harbor 是許多選項之一,也是目前最流行的選項之一,底下是安裝的步驟。
  • 下載 & 解壓縮
    • git hub 上下載
    • 解壓縮: tar xzvf harbor-offline-installer-v1.10.2.tgz
    • 我的 home 目錄是 /home/steven,解壓縮後檔案在 /home/steven/harbor。
    • cd harbor
  • 設定 hosts
  • 因為我希望 Harbor 的網址是 harbor.steven.idv.tw,所以在 /etc/hosts 中定義了:
    192.168.0.120 harbor.steven.idv.tw
    
  • 產生憑證
  • openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
    
    openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.steven.idv.tw -out harbor.steven.idv.tw
    
    建立一個名為 extfile.cnf 的網案,內容如下:
    subjectAltName = IP:192.168.0.120
    
    繼續產生憑證:
    openssl x509 -req -days 3650 -in harbor.steven.idv.tw -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out harbor.steven.idv.tw
    openssl req -new -x509 -text -key ca.key -out ca.cert
    
    接著將產生的三個檔案 copy 到以下目錄 (沒有這個目錄就自己建立),不只 master node,所有 worker node 的該目錄也都要有這些檔案。
    sudo cp *.crt *.key *.cert /etc/docker/certs.d/harbor.steven.idv.tw
  • 修改 harbor.yml
  • hostname: harbor.steven.idv.tw
    port: 80
    certificate: /etc/docker/certs.d/harbor.steven.idv.tw/ca.crt
    private_key: /etc/docker/certs.d/harbor.steven.idv.tw/ca.key
    
  • 安裝 Harbor
  • 執行 sudo ./install.sh --with-clair,執行過程沒有錯誤的話,打開瀏覽器,輸入 http://harbor.steven.idv.tw 應該可以看到如下畫面。(安裝前請先確定已經有安裝 docker-compose)
    預設的帳號、密碼是 admin / Harbor12345,登入後畫面如下,點選 Administrator > Users,,按【+ NEW USER】新增一個 user 命名為 steven。
    接著在「Projects」中新增一個命名為 home 的 project。
    點選 home 於「Members」將剛剛新建立的 user steven 加入,這樣 steven 才能存取 home。
  • 測試
  • 測試前先修改 /etc/docker/daemon.json,如果沒有這個檔案,自行創建,在裡面加入如下內容:
    {"insecure-registries": ["192.168.0.120"]}
    
    然後重啟 docker
    systemctl restart docker
    
    登入 docker (steven / P@ssw0rd)
    docker login harbor.steven.idv.tw
    
    因為目前 docker 裡有個 image harbor.steven.idv.tw/home/host,如下:
    所以可以用以下指令將 image 推送到 harbor 上。
    docker push harbor.steven.idv.tw/home/host
    
    檢查一下 harbor,確實已經推上去了,如下圖。
  • 啟動 & 關閉
  • sudo docker-compose up -d
    sudo docker-compose down
    

沒有留言:

張貼留言