Docker私有鏡像倉庫Harbor集群搭建

1. Harbor介紹

Harbor是由VMware開源的企業(yè)級的Docker Registry管理項(xiàng)目帖族,包括權(quán)限管理绳泉、LDAP、日志審核伦意、管理界面火窒,自我注冊、鏡像復(fù)制等功能驮肉。

Harbor相對于Docker Registry的優(yōu)點(diǎn):

  1. 有管理界面熏矿,管理起來比較方便
  2. 支持鏡像同步和集群部署
  3. 很好的和K8s集成

2. 環(huán)境和軟件準(zhǔn)備

本次演示在Linux CentOs7系統(tǒng)上操作,準(zhǔn)備以下兩臺機(jī)器作為Harbor集群:
192.168.1.91 ==> Harbor1
192.168.1.92 ==> Harbor2

其他需要安裝的軟件及版本:

  1. Docker:version 18.09.6 (由于基于Docker Registry V2版本,所以Docker版本不能低于1.10.0)
  2. Docker-compose:version 1.22.0(由于Harbor用的最新版1.8.0票编,需要Docker-compose支持1.18.0以上)
  3. Harbor:version 1.8.0

注意: Harbor的所有服務(wù)組件都是在Docker中部署的褪储,所以官方安裝使用Docker-compose快速部署,所以才需要安裝Docker和Docker-compose

2.1 Docker安裝

直接使用以下命令慧域,下載官方的shell腳本執(zhí)行安裝即可鲤竹。

sudo yum -y update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

在centos7系統(tǒng)下,啟動docker昔榴,只需要執(zhí)行命令sudo systemctl start docker.service

2.2 Docker-compose安裝

使用以下命令辛藻,即可快速安裝

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3. Harbor服務(wù)搭建

3.1 下載Harbor安裝文件

從github harbor官網(wǎng)的release頁面下載1.8.0版本的安裝包

  • 下載在線安裝包
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.0.tgz
tar xvf harbor-online-installer-v1.8.0.tgz
  • 下載離線安裝包
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz
tar xvf harbor-offline-installer-v1.8.0.tgz

3.2 配置Harbor

我們以配置192.168.1.91為例來進(jìn)行說明,解壓縮之后互订,打開harbor.yml文件進(jìn)行編輯吱肌。

  1. 找到hostname屬性,將值改為192.168.1.91
  2. 找到port屬性屁奏,將值改為8084(這里我們用8084作為我們的訪問端口
  3. 找到harbor_admin_password屬性用于設(shè)置管理界面默認(rèn)賬號admin的登陸密碼岩榆。
  4. 找到password屬性,用于設(shè)置Harbor DB的root賬號的密碼

其他都可以保持默認(rèn)值就好坟瓢。這里我們暫時(shí)使用http訪問,不開啟https訪問犹撒。

3.3 啟動Harbor

修改完配置文件后折联,我們在當(dāng)前目錄執(zhí)行sh install.sh腳本,Harbor服務(wù)會自動生成docker-compose.yml并下載依賴的鏡像识颊,然后檢測并按照順序依次啟動各個(gè)服務(wù)诚镰。

執(zhí)行完install.sh腳本后,我們就可以使用http://192.168.1.91:8084來訪問我們的管理界面了

12.png

3.4 登錄Web Harbor

輸入用戶名(默認(rèn)用戶名為admin)和密碼(密碼為修改配置文件時(shí)設(shè)置的密碼)登錄系統(tǒng)祥款。


231.png

這里主要有以下幾個(gè)模塊:

  • 項(xiàng)目:我們要上傳鏡像清笨,必須得先創(chuàng)建項(xiàng)目,并且給項(xiàng)目分配成員刃跛,項(xiàng)目配置為公開的話抠艾,則任何人都可以拉取鏡像。
  • 用戶管理:主要是創(chuàng)建不同的用戶來管理鏡像桨昙,在真實(shí)情況下检号,不同的角色用戶可能對鏡像的操作是不一樣的。
  • 倉庫管理:
  • 同步管理:主要用于在多臺Harbor之間進(jìn)行鏡像同步管理

3.5 測試Harbor鏡像上傳

  1. 新建一個(gè)test項(xiàng)目


    12.png
  2. 創(chuàng)建一個(gè)docker的用戶專門來測試上傳和拉取鏡像


    12.png
  3. 把docker用戶添加到test項(xiàng)目的成員當(dāng)中去蛙酪,角色選擇開發(fā)人員就好齐苛。


    12.png
  4. 上傳測試鏡像
    我在192.168.1.92上面有一些測試鏡像,我們可以在它上面來進(jìn)行測試桂塞。
  • 查看鏡像列表
    我們通過以下命令來查看下有哪些鏡像
    docker images

    12.png

  • 給鏡像打上TAG
    通過上面的命令凹蜂,我們看到有一個(gè)nginx鏡像比較小,只有36M,我們就用它來測試吧玛痊。
    用以下命令給鏡像打上TAG
    docker tag nginx:latest 192.168.1.91:8084/test/nginx

    注意: tag后面第一個(gè)參數(shù)是源鏡像(即本地鏡像nginx汰瘫,這里我們注意到nginx后面有個(gè)冒號跟了latest,是因?yàn)殓R像使用的tag是latest卿啡,上圖中我們可以看到那個(gè)tag號)吟吝。tag后面第二個(gè)參數(shù)就是我們要打TAG的鏡像,由于我們鏡像要上傳到192.168.1.91這個(gè)Registry中颈娜,則使用192.168.1.91:8084(記得帶上端口號8084)剑逃,test則是我們第一步創(chuàng)建的項(xiàng)目名稱,nginx則是鏡像名稱(當(dāng)然我們也可以在鏡像名稱后面加上:1.0這樣的tag號來標(biāo)記版本)

  • 上傳鏡像
    執(zhí)行以下命令來上傳鏡像
    docker push 192.168.1.91:8084/test/nginx-photon
    這里我們沒有指定tag號官辽,則會上傳并生成latest版本的鏡像蛹磺。

我們執(zhí)行上面命令之后,發(fā)現(xiàn)出錯(cuò)了同仆,果然理想是豐滿的萤捆,現(xiàn)實(shí)是骨感的,沒有那么一帆風(fēng)順的俗批。我們來看看出什么錯(cuò)了
Get https://192.168.1.91:8084/v2/: http: server gave HTTP response to HTTPS client
看來錯(cuò)誤提示還是很明顯的俗或,這是因?yàn)槲覀兊腍arbor配置的是http訪問,而Docker默認(rèn)是必須使用HTTPS的岁忘,既然知道原因了辛慰,就好解決了。

解決方案: 找到文件/etc/docker/daemon.json(沒有就創(chuàng)建一個(gè))干像,把"192.168.1.91:8084"加入到"insecure-registries"配置中帅腌。如下圖:

12.png

然后執(zhí)行以下指令并重啟docker讓配置生效

systemctl daemon-reload
systemctl restart docker.service

繼續(xù)執(zhí)行上傳命令,此時(shí)又出現(xiàn)了一個(gè)新的錯(cuò)誤denied: requested access to the resource is denied
這是因?yàn)槲覀儧]有登陸到Registry認(rèn)證麻汰,所以無法Push鏡像速客。
使用命令docker login 192.168.1.91:8084進(jìn)行認(rèn)證即可,輸入剛才創(chuàng)建的docker用戶以及密碼五鲫。

再次上傳就可以成功push鏡像到Harbor了溺职。


12.png

3.6 配置Docker鏡像同步

我們將192.168.1.91作為主節(jié)點(diǎn),192.168.1.92作為從節(jié)點(diǎn)臣镣。當(dāng)我們往91上面Push鏡像的時(shí)候辅愿,自動復(fù)制到92上面。

我們到91進(jìn)行配置

  1. 創(chuàng)建倉庫
    點(diǎn)擊系統(tǒng)管理 -> 倉庫管理 -> 新建目標(biāo)

    12.png

    這里需要注意的是忆某,目標(biāo)URL必須包含我們在92上創(chuàng)建的項(xiàng)目点待,也就是需要把鏡像同步到哪個(gè)項(xiàng)目(這里是我們剛才在92創(chuàng)建的test項(xiàng)目)。配置好了弃舒,可以點(diǎn)擊測試連接癞埠。

  2. 配置同步規(guī)則
    點(diǎn)擊系統(tǒng)管理 -> 同步管理 -> 新建規(guī)則


    12.png

    這里同步模式状原,我們選擇基于推送的模式
    源資源過濾器,我們使用默認(rèn)
    目標(biāo)的Registry就選擇我們剛才第一步配置的倉庫
    觸發(fā)模式苗踪,我們選擇事件驅(qū)動的方式颠区,然后勾選同步刪除,以及覆蓋

  3. 測試上傳鏡像到91
    我們可以上傳一個(gè)鏡像到91通铲,觀察是否可以同步到92毕莱。如果可以正常同步,則說明沒有問題了颅夺。

另外:
啟動Harbor:docker-compose start
停止Harbor:docker-compose stop

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朋截,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吧黄,更是在濱河造成了極大的恐慌部服,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拗慨,死亡現(xiàn)場離奇詭異廓八,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赵抢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門剧蹂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烦却,你說我怎么就攤上這事国夜。” “怎么了短绸?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長筹裕。 經(jīng)常有香客問我醋闭,道長,這世上最難降的妖魔是什么朝卒? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任证逻,我火速辦了婚禮,結(jié)果婚禮上抗斤,老公的妹妹穿的比我還像新娘囚企。我一直安慰自己,他們只是感情好瑞眼,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布龙宏。 她就那樣靜靜地躺著,像睡著了一般伤疙。 火紅的嫁衣襯著肌膚如雪银酗。 梳的紋絲不亂的頭發(fā)上辆影,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音黍特,去河邊找鬼蛙讥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛灭衷,可吹牛的內(nèi)容都是我干的次慢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼翔曲,長吁一口氣:“原來是場噩夢啊……” “哼迫像!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起部默,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤侵蒙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后傅蹂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纷闺,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年份蝴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了犁功。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡婚夫,死狀恐怖浸卦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情案糙,我是刑警寧澤限嫌,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站时捌,受9級特大地震影響怒医,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奢讨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一稚叹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拿诸,春花似錦扒袖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蟀伸,卻和暖如春蚀同,著一層夾襖步出監(jiān)牢的瞬間缅刽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工蠢络, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衰猛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓刹孔,卻偏偏與公主長得像啡省,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子髓霞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容