CentOS 7 部署 Harbor 倉庫V2.x系列

Harbor 倉庫介紹

Docker容器應用的開發和運行離不開可靠的鏡像管理,雖然Docker官方也提供了公共的鏡像倉庫,可是從安全和效率等方面考慮,部署私有環境內的Registry也是很是必要的。Harbor是由VMware公司開源的企業級的Docker Registry管理項目,它包括權限管理(RBAC)、LDAP、日誌審覈、管理界面、自我註冊、鏡像複製和中文支持等功能。前端

Harbor核心組件解釋

Proxy:他是一個nginx的前端代理,代理Harbor的registry,UI, token等服務。
db:負責儲存用戶權限、審計日誌、Dockerimage分組信息等數據。
UI:提供圖形化界面,幫助用戶管理registry上的鏡像, 並對用戶進行受權。
jobsevice:jobsevice是負責鏡像複製工做的,他和registry通訊,從一個registry pull鏡像而後push到另外一個registry,並記錄job_log。
Adminserver:是系統的配置管理中心附帶檢查存儲用量,ui和jobserver啓動時候回須要加載adminserver的配置。
Registry:鏡像倉庫,負責存儲鏡像文件。
Log:爲了幫助監控Harbor運行,負責收集其餘組件的log,供往後進行分析。linux

Harbor和Registry的比較

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

安裝環境

1.docker 版本17.06.0+
2.docker-compose 版本 1.18.0+
3.關閉防火牆,安全性
4.CentOS 7 系統,可聯網docker

1、安裝docker步驟

1.添加docker-ce源

cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repojson

CentOS 7 部署 Harbor 倉庫V2.x系列

注意:若沒法使用wget下載,可先下載,再上傳到Linux相關目錄下vim

2.安裝docker

yum -y install docker-cecentos

3.啓動docker

systemctl start dockerapi

4.將docker設置爲開機自啓

systemctl enable docker瀏覽器

CentOS 7 部署 Harbor 倉庫V2.x系列

2、安裝docker-compse

1.先安裝epel源

yum install -y epel-releasetomcat

2.安裝docker-compose

yum -y install docker-compose

3、安裝harbor倉庫

1.下載harbor離線安裝包

下載地址: https://storage.googleapis.com/harbor-releases/ 可選擇最新版本下載

CentOS 7 部署 Harbor 倉庫V2.x系列

wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v2.0.0.tgz

注意:若使用wget 沒法下載,出現以下圖報錯:

CentOS 7 部署 Harbor 倉庫V2.x系列

解決方法:在window瀏覽器直接打開連接下載,在上傳到Linux系統。

CentOS 7 部署 Harbor 倉庫V2.x系列

2.解壓harbor

tar xvf harbor-offline-installer-v2.0.0.tgz -C /usr/local

3.導入docker鏡像

cd /usr/local/harbor
docker image load -i harbor.v2.0.0.tar.gz

4.修改第harbor.yml配置文件

cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml #拷貝配置模板
vim harbor.yml

hostname = 192.168.156.133
再註釋掉https相關端口號,其餘可根據須要修改!

CentOS 7 部署 Harbor 倉庫V2.x系列
CentOS 7 部署 Harbor 倉庫V2.x系列

注意:

1.安裝v2.x系列,必須先導入鏡像,再拷貝harbor.yml.tmpl模板,順序不能亂,而且直接使用harbor.yml.tmpl模板做爲配置文件,只能使用harbor.yml 做爲配置文件。
2.v1.x系列安裝沒有導入docker鏡像這一步,直接修改配置文件harbor.cfg 便可,後面操做同樣。

5.檢測harbor

./prepare

6.安裝harbor

./install.sh

CentOS 7 部署 Harbor 倉庫V2.x系列

7.查看服務器運行的容器

docker ps

CentOS 7 部署 Harbor 倉庫V2.x系列

8.訪問Harbor管理系統

地址: http://192.168.154.133
默認帳號:admin
密碼: Harbor12345

CentOS 7 部署 Harbor 倉庫V2.x系列

9.相關命令

docker-compose up -d # 後臺啓動,若是容器不存在根據鏡像自動建立
docker-compose down -v # 中止容器並刪除容器
docker-compose start # 啓動容器,容器不存在就沒法啓動,不會自動建立鏡像
docker-compose stop # 中止容器

10.建立項目

CentOS 7 部署 Harbor 倉庫V2.x系列

CentOS 7 部署 Harbor 倉庫V2.x系列
CentOS 7 部署 Harbor 倉庫V2.x系列

上傳鏡像

1.下載官方tomcat鏡像

docker pull tomcat

注意:以下載過慢,能夠添加:

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://fskvstob.mirror.aliyuncs.com/"]
}

systemctl daemon-reload #從新加載
systemctl restart docker #重啓docker

2.給tomcat鏡像打標籤

docker tag tomcat 192.168.154.133/maven-test01/tomcat:v1

3.登錄harbor

docker login 192.168.154.133

此時會報錯以下:

CentOS 7 部署 Harbor 倉庫V2.x系列

解決方案:

cd /usr/lib/systemd/system
vim docker.service

--insecure-registry=192.168.154.133

CentOS 7 部署 Harbor 倉庫V2.x系列

systemctl daemon-reload
systemctl restart docker #重啓服務

4.再次登陸

docker login 192.168.154.133

CentOS 7 部署 Harbor 倉庫V2.x系列

5.上傳鏡像到倉庫

docker push 192.168.154.133/maven-test01/tomcat:v1

CentOS 7 部署 Harbor 倉庫V2.x系列

6.查看倉庫

CentOS 7 部署 Harbor 倉庫V2.x系列

相關文章
相關標籤/搜索