當(dāng)前位置:首頁(yè)>>資訊中心>>公司新聞 ? 利用Harbor搭建協(xié)同互聯(lián)IBMS的私有鏡像倉(cāng)庫(kù)
文章出處:本站 責(zé)任編輯:協(xié)同互聯(lián) 閱讀量:509 次 發(fā)表時(shí)間:2022-07-01 16:55:02
利用Harbor搭建協(xié)同互聯(lián)IBMS的私有鏡像倉(cāng)庫(kù)
協(xié)同互聯(lián)IBMS智能化集成系統(tǒng)采用Java Spring cloud微服務(wù)架構(gòu),,實(shí)現(xiàn)微服務(wù)的快速動(dòng)態(tài)服務(wù)發(fā)現(xiàn),、服務(wù)配置,、服務(wù)元數(shù)據(jù)及流量管理,。協(xié)同互聯(lián)IBMS共有13個(gè)微服務(wù)組成,,微服務(wù)采用Docker容器部署,,為了方便于軟件的部署,公司利用提供Harbor搭建了Docker私有鏡像倉(cāng)庫(kù),,統(tǒng)一管理所有鏡像,,實(shí)現(xiàn)一鍵部署。
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口,。
Harbor簡(jiǎn)介
Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,雖然Docker官方也提供了公共的鏡像倉(cāng)庫(kù),,但是從安全和效率等方面考慮,,部署企業(yè)內(nèi)部的私有環(huán)境Registry是非常必要的,Harbor和docker中央倉(cāng)庫(kù)的關(guān)系,,就類似于nexus和Maven中央倉(cāng)庫(kù)的關(guān)系,,Harbor除了存儲(chǔ)和分發(fā)鏡像外還具有用戶管理,項(xiàng)目管理,,配置管理和日志查詢,,高可用部署等主要功能。
Harbor搭建
在本地搭建一個(gè)Harbor服務(wù),其他在同一局域網(wǎng)的機(jī)器可以使用Harbor進(jìn)行鏡像提交和拉取,,搭建前需要本地安裝docker服務(wù)和docker-compose,,docker-compose可以直接使用pip安裝。
pip install docker-compose
下載Harbor離線安裝包harbor-offline-installer-v2.1.0.tgz,,在github官網(wǎng)或者其他資源鏈接下載,,下載后解壓。
tar -zxvf harbor-offline-installer-v2.1.0.tgz
解壓完成后在當(dāng)前目錄生成harbor目錄,,復(fù)制和修改harbor目錄下的harbor.yml
cp harbor.yml.tmpl harbor.yml
注釋掉htps的配置內(nèi)容,,配置htp相關(guān)的參數(shù),主要是hostname,,port,,其他都可以不用動(dòng)。
# vim harbor.yml
hostname: 10.3.10.55
# htp related config
htp:
# port for htp, default is 80. If htps enabled, this port will redirect to htps port
port: 8081
進(jìn)行本地安裝:
bash prepare
bash install.sh
安裝完成后在本地生成docker-compose.yml文件,,此時(shí)可以啟動(dòng)harbor服務(wù),;
docker-compose up -d
打開(kāi)在harbor.yml中配置的host和port,可以登錄管理頁(yè)面,。
3.Harbor上傳和拉取鏡像
上傳鏡像需要在docker主機(jī)進(jìn)行操作,,對(duì)于私有項(xiàng)目必須登錄Harbor私服才能進(jìn)行pull和push操作,push到Harbor的鏡像的命名必須按照如下規(guī)則,。
{Harbor地址}:{端口}/{Harbor項(xiàng)目名}/{自定義鏡像名}:{自定義tag}
由于harbor采用的是http服務(wù),,而docker倉(cāng)庫(kù)默認(rèn)采用https,如果對(duì)私服采用docker login,、pull,、push等命令操作非htps的docker regsitry的時(shí)就會(huì)報(bào)錯(cuò),所以需要在docker的配置文件中將harbor私服地址配置到insecure-registry作為不安全的地址運(yùn)行訪問(wèn),。
# touch /etc/docker/daemon.json { : ["192.168.1.28:80"] }
重啟docker,,查看docker info是否配置私服地址成功;
# docker info Insecure Registries: 192.168.1.28:80 # 已經(jīng)配置成功 127.0.0.0/8
下一步測(cè)試登錄私服,,登錄成功,;
root@ubuntu:~# docker login 192.168.1.28:80 -u xiaogp Password: WARNING! Your password will be stored unencrypted in /home/xiaogp/.docker/config.json. Configure a credential helper to remove this warning. See docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
下一步將docker本機(jī)的鏡像上傳push到harbor,先使用docker tag創(chuàng)建一個(gè)新的鏡像并且重命名為harbor指定的ip:host/項(xiàng)目名格式,,然后直接push,。
root@ubuntu:~# docker tag xiaogp/my_image_test:v1 192.168.1.28:80/test_public/my_image_test:v1
root@ubuntu:~# docker push 192.168.1.28:80/test_public/my_image_test:v1
The push refers to repository [192.168.1.28:80/test_public/my_image_test]
bc6c5868a244: Pushed
52cec1fdc1f3: Pushed
6b24a3d04a66: Pushed
d5f992479e0c: Pushed
5adaa6cddd5f: Pushed
9f5b4cdea532: Pushed
cd702377e4e5: Pushed
aa7af8a465c6: Pushed
ef9a7b8862f4: Pushed
a1f2f42922b1: Pushed
4762552ad7d8: Pushed
v1: digest: sha256:567000120e42943f598efe5084006ffa5f307f4ffbd8871003602351876aba1b size: 2640
在harbot web客戶端查看鏡像。