Docker-harbor基礎與搭建

Docker-harbor基礎與搭建

前言:這個harbor可不是啥哈勃望遠鏡,這是docker裏面的一個鏡像倉庫。而哈勃望遠鏡是啥?哈勃空間望遠鏡(英語:Hubble Space Telescope,縮寫:HST)是以美國天文學家愛德溫·哈勃爲名,於1990年4月24日成功發射,位與地球的大氣層之上的光學望遠鏡。

mark

有興趣的可以去了解下,畢竟美麗深邃的星空,與茫茫宇宙中那麼多未知的奧祕的確有他獨特的魅力~

以洪荒蠻神之力,強行把各位拉回到Docker-harbor上

爲什麼用harbor

在實際生產運維中,往往需要把鏡像發佈到幾十、上百臺或更多的節點上。這時單臺Docker主機上鏡像已無法滿足,項目越來越多,鏡像就越來越多,都放到一臺Docker主機上是不行的,我們需要一個像Git倉庫一樣系統來統一管理鏡像。這裏介紹的是一個企業級鏡像倉庫Harbor,將作爲我們容器雲平臺的鏡像倉庫中心。
Habor是由VMWare公司開源的容器鏡像倉庫。事實上,Habor是在Docker-Registry上進行了相應的企業級擴展,從而獲得了更加廣泛的應用,這些新的企業級特性包括:管理用戶界面,基於角色的訪問控制 ,AD/LDAP集成以及審計日誌等,足以滿足基本企業需求。

與Registry對比

Harbor和Registry都是Docker的鏡像倉庫,但是Harbor作爲更多企業的選擇,是因爲相比較於Regisrty來說,它具有很多的優勢。
1、提供分層傳輸機制,優化網絡傳輸
Docker鏡像是是分層的,而如果每次傳輸都使用全量文件(所以用FTP的方式並不適合),顯然不經濟。必須提供識別分層傳輸的機制,以層的UUID爲標識,確定傳輸的對象。
2、提供WEB界面,優化用戶體驗
只用鏡像的名字來進行上傳下載顯然很不方便,需要有一個用戶界面可以支持登陸、搜索功能,包括區分公有、私有鏡像。
3、支持水平擴展集羣
當有用戶對鏡像的上傳下載操作集中在某服務器,需要對相應的訪問壓力作分解。
4、良好的安全機制
企業中的開發團隊有很多不同的職位,對於不同的職位人員,分配不同的權限,具有更好的安全性。
5、Harbor提供了基於角色的訪問控制機制,並通過項目來對鏡像進行組織和訪問權限的控制。kubernetes中通過namespace來對資源進行隔離,在企業級應用場景中,通過將兩者進行結合可以有效將kubernetes使用的鏡像資源進行管理和訪問控制,增強鏡像使用的安全性。尤其是在多租戶場景下,可以通過租戶、namespace和項目相結合的方式來實現對多租戶鏡像資源的管理和訪問控制。

修改docker倉庫地址

vi /etc/docker/daemon.json
{ "insecure-registries":["192.168.1.250:5000"] }

安裝docker-compose

yum -y install epel-release
yum -y install python-pip
pip install docker-compose

下載harbor

github地址:https://github.com/goharbor/harbor/releases
cd /home/docker/harbor/
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-online-installer-v1.6.0.tgz
tar xf harbor-online-installer-v1.6.0.tgz
cd harbor

修改配置

vim harbor.cfg
#主機地址
hostname=192.168.1.250
#使用https
ui_url_protocol = https
#ssl證書位置
ssl_cert = /home/docker/certs/***.crt
ssl_cert_key = /home/docker/certs/***.key
#映射路徑
secretkey_path = /home/docker/harbor/data

vim docker-compose.yml
#修改其中的-v的目錄文件,如:
volumes:
  - /home/docker/harbor/log/harbor/:/var/log/docker/:z
volumes:
  - /home/docker/harbor/data/registry:/storage:z
volumes:
  - /home/docker/harbor/data/database:/var/lib/mysql:z
volumes:
  - /home/docker/harbor/data/config/:/etc/adminserver/config/:z
  - /home/docker/harbor/data/secretkey:/etc/adminserver/key:z
  - /home/docker/harbor/data/:/data/:z
volumes:
  - ./common/config/ui/app.conf:/etc/ui/app.conf:z
  - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem:z
  - ./common/config/ui/certificates/:/etc/ui/certifates/
  - /home/docker/harbor/data/secretkey:/etc/ui/key:z
  - /home/docker/harbor/data/ca_download/:/etc/ui/ca/:z
  - /home/docker/harbor/data/psc/:/etc/ui/token/:z
volumes:
  - /home/docker/harbor/data/job_logs:/var/log/jobs:z
  - ./common/config/jobservice/app.conf:/etc/jobservice/app.conf:z
  - /home/docker/harbor/data/secretkey:/etc/jobservice/key:z
#修改端口號;因爲使用https,只需要修改443的映射即可
ports:
  - 82:80
  - 5000:443

修改./common/config/registry/config.yml中的realm的地址;
auth:
token:
    issuer: harbor-token-issuer
    realm: https://192.168.1.250:5000/service/token

啓動

./install.sh

訪問地址

192.168.1.250:5000
admin   Harbor12345

登錄查看

mark

小結:harbor這個倉庫還是很好用的,就和哈勃望遠鏡一樣,都是功能強悍的工具。好了,扯不下去了,要看哈勃望遠鏡的自己百度去吧~

mark

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