1. 程式人生 > >安裝Harbor管理映象服務

安裝Harbor管理映象服務

Harbor是什麼?

還記得Docker Registry麼?它是Docker官方提供的映象倉庫,簡單易用,一鍵就可以部署、使用。

雖然看起來不錯,但是Registry有些問題需要解決:

  1. 沒有圖形介面
  2. 沒有使用者許可權控制
  3. 看不到映象操作記錄
  4. 倉庫內映象管理難度大

賣了個關子,基於Registry有的問題,VMWare公司開發了Harbor,用來解決Registry不完善的功能,

使用Harbor,你可以:

  • 按專案管理映象
  • 明確記錄使用者對映象倉庫專案的操作,包含create、push 、delete,甚至pull!
  • 有圖形介面
  • 有使用者管理,可以按需分配許可權,普通使用者只能pull
  • 倉庫內的映象可以在圖形介面刪除與複製,垃圾清理!
  • 可以同步已有映象倉庫的映象
  • 有倉庫管理 暫時沒太關注這是幹嘛用的
  • API控制中心!

放幾張效果圖:

搭建步驟

  • 安裝Docker、Docker-compose
  • 下載Harbor離線包
  • 配置harbor.yml
  • 執行 ./install.sh

安裝Docker、Docker-compose

安裝docker

CentOS安裝Docker-ce並配置國內映象

配置非root使用者免sudo使用docker,立即生效

sudo usermod -aG docker 要使用的使用者名稱 && newgrp docker

安裝docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose #賦執行許可權

下載Harbor離線包

在Github上的倉庫地址https://github.com/goharbor/harbor/releases

這裡我們下載最新的release v1.8.2版本

[v1.8.2離線版下載連結]https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz

離線版本相對於online版本,區別是它們都是使用的Docker映象與Docker-compose工具,不同的是

  • 離線包中包含了所有需要的映象匯出包
  • 線上包中只包含簡單的配置檔案

離線包占記憶體比較大,差不多五百多兆,因為我們公司一般是內網的線上環境,這裡就直接下載離線包了,您可以選擇自己喜歡或需要的版本,以下使用離線包演示

可以直接用命令下載

wget -P /usr/local/src https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.2.tgz

這裡直接下載到了/usr/local/src中

配置harbor.yml

先進入剛才下載到的目錄,解壓離線包到/usr/local/harbor下

cd /usr/local/src
tar zxf harbor-offline-installer-v1.8.2.tgz  -C /usr/local/
cd /usr/local/harbor/

配置harbor.yml vim harbor.yml, 這裡包含必要引數與可選引數,這裡只記錄下必要引數

必要引數

  • hostname:訪問的Harbor服務的IP或域名(UI與命令列操作同樣生效),不要使用localhost127.0.0.10.0.0.0
  • data_volume: Harbor中的資料掛載對應宿主機的位置,如/home/harbor/data
  • harbor_admin_password: admin管理員密碼,預設管理員賬號/密碼為admin/Harbor12345
  • database: Harbor內部的資料庫
    • password: 資料庫密碼
    • max_idle_conns: 連線池最大保持空閒數
    • max_open_conns: 同時最大開啟的連線數
  • jobservice:作業相關的服務
    • max_job_workers: 最大作業worker數
  • log: 日誌相關
    • level:日誌輸出等級
    • local:本地日誌保留相關
      • rotate_count: 日誌檔案在移除之前的旋轉次數 Log files are rotated rotate_count times before being removed. If count is 0, old versions are removed rather than rotated.
      • rotate_size: 日誌保持大小,超出部分會刪除舊日誌
      • location: 儲存日誌的路徑
    • external_endpoint:開啟此選項,將會把日誌轉發到syslog服務中
      • protocol:轉發協議,預設TCP
      • host: syslog服務的ip
      • port: syslog服務監聽的埠號

必要引數基本就這些,如果想配置更仔細些,請參考Github

執行 ./install.sh

cd /usr/local/harbor
./install.sh #執行安裝指令碼

檢視下用到哪些容器 docker-compose ps

到此安裝完成

測試與使用Harbor

訪問hostname處配置的IP

登入即可訪問了,這裡使用就不多說了,點點就瞭解個七七八八了

docker login 與 push 測試

接下來測試下,使用docker push到這個倉庫中

推薦再準備一臺虛擬機器,如果沒有的話,可以先在/usr/local/harbor目錄下執行docker-compose down -v關閉harbor各容器

推送映象到非https的倉庫時,都需要設定非安全的倉庫,vim /etc/docker/daemon.json,如圖大家參考下

主要是

{
    "insecure-registries": ["192.168.87.139:80"]
}

我這裡之前配置了另一個映象倉庫,這裡大家看看就好

需要注意的是:剛才配置的hostname後需要寫明80埠,如果是域名則不需要

改好後,重啟docker服務systemctl restart docker

登入倉庫

docker login 192.168.87.139:80

初次登入需要使用使用者名稱與密碼,這個是在Harbor使用者管理中配置的,admin使用者擁有最高許可權

這裡用本地java:latest映象舉例

#重新tag方能推送
docker tag java:latest 192.168.87.139:80/library/java:latest
#推送映象
docker push 192.168.87.139:80/library/java:latest

去Harbor的UI介面 -> 專案 -> library

我們點開library/java,可以檢視具體的tags

刪除本地剛才tag的映象,我們pull下來試試

#刪除本地映象
docker rmi 192.168.87.139:80/library/java:latest
#pull Harbor映象倉庫中的映象
docker pull 192.168.87.139:80/library/java:latest

一切正常,後續自我去配置下可選的配置就可以了。

關閉Harbor服務

cd /usr/local/harbor
docker-compose down -v

刪除/解除安裝Harbor

先參考上一小節關閉Harbor服務,關閉Harbor

rm -rf /usr/local/harbor
rm -rf /usr/local/src/harbor

刪除映象這塊就需要使用docker rmi了,這裡就不多說了,剛才docker-compose ps時有顯示用到哪些映象

後記

本來打算暫時不更新部落格的,現在工作需要去看看映象倉庫相關的內容,輸出文件,這裡就一口氣全寫出來了,先這樣。


本文系Hellxz學習與實踐文章,禁止布布扣、碼迷、愛碼網等第三方爬蟲網站爬取,轉載請在醒目位置註明出處:https://www.cnblogs.com/hellxz/p/install_harbor.h