安裝Harbor管理映象服務
Harbor是什麼?
還記得Docker Registry麼?它是Docker官方提供的映象倉庫,簡單易用,一鍵就可以部署、使用。
雖然看起來不錯,但是Registry有些問題需要解決:
- 沒有圖形介面
- 沒有使用者許可權控制
- 看不到映象操作記錄
- 倉庫內映象管理難度大
賣了個關子,基於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與命令列操作同樣生效),不要使用
localhost
、127.0.0.1
或0.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