一、Harbor組件
組件 |
功能 |
harbor-adminserver |
配置管理中心 |
harbor-db |
Mysql數據庫 |
harbor-jobservice |
負責鏡像復制 |
harbor-log |
記錄操作日志 |
harbor-ui |
Web管理頁面和API |
nginx |
前端代理,負責前端頁面和鏡像上傳/下載轉發 |
redis |
會話 |
registry |
鏡像存儲 |
二、Harbor部署
Harbor安裝有3種方式:
l 在線安裝:從Docker Hub下載Harbor相關鏡像,因此安裝軟件包非常小
l 離線安裝:安裝包包含部署的相關鏡像,因此安裝包比較大
l OVA安裝程序:當用戶具有vCenter環境時,使用此安裝程序,在部署OVA后啟動Harbor
我們采用離線安裝,首先下載離線安裝包:https://github.com/vmware/harbor/releases
HTTP方式部署
首選安裝docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version
修改倉庫地址,注意這個地方很重要,如果不上傳可以忽略
cat >/etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "192.168.10.122" ] } EOF
驗證是否成功
systemctl daemon-reload systemctl restart docker.service docker info
安裝docker-compose
yum install -y docker-compose
Harbor下載地址:
https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
解壓文件
tar xf harbor-offline-installer-v1.7.5.tgz
cd harbor/
編輯配置文件
vim /root/harbor/harbor.cfg 確保下面幾個地方沒問題,如果不是有80端口,可以加上端口號,不會與其他端口沖突,例如:192.168.10.122
#不加證書http hostname = 192.168.10.122 ui_url_protocol = http harbor_admin_password = Harbor12345 #下面的是加證的配置https #hostname = reg.fage.com #ui_url_protocol = http #ssl_cert = ./ssl/reg.fage.com.crt #ssl_cert_key = ./ssl/reg.fage.com.key #harbor_admin_password = Harbor12345
准備配置文件:
./prepare
開始安裝並啟動barbor
cd /root/harbor/ && ./install.sh
驗證
cd installpath && docker-compose ps
需要狀態全部為UP才是成功的
瀏覽器輸入地址就可以訪問了
http://192.168.10.122
賬號:admin
密碼:Harbor12345
上傳鏡像到harbor
接下來將剛才構建的鏡像推送到Harbor倉庫,先看看我們要推送的鏡像
docker images
在推送之前,需要注意第一列,這個完整格式是
regisry.stnrs.com/library/hello-word:latest
鏡像中心域名 項目名稱 名稱 版本
如果鏡像只放在本地存儲REPOSITORY寫什么都可以,但推送到鏡像倉庫就必須指定倉庫中心地址。
所以,先打重命名REPOSITORY,其實就是引用源鏡像標記了一個目標鏡像
上傳鏡像需要先登錄,不登錄會報錯
docker image tag nginx 192.168.10.122/library/nginx-1
docker login 192.168.10.122
docker push 192.168.10.122/library/nginx-1
登錄網頁看也一樣能看到鏡像
http://192.168.10.122/harbor/projects/1/repositories
客戶端使用
如果沒有加入證書就要修改這個文件才能登錄
cat >/etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://b9pmyelo.mirror.aliyuncs.com" ], "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "192.168.10.112" ] } EOF
重置系統環境
systemctl daemon-reload systemctl restart docker.service
登錄成功后才能上傳鏡像
docker login 192.168.10.112 docker image tag nginx-v1 192.168.10.112/nginx-v1 docker push 192.168.10.112/nginx-v1
加密方式
docker login reg.fage.com docker image tag nginx-v1 reg.fage.com/nginx-v1 docker push reg.fage.com /nginx-v1