Harbor倉庫
- 一、Harbor簡介
- 二、安裝部署Harbor倉庫
- 三、Harbor倉庫的使用
- 四、harbor安全驗證
一、Harbor簡介
Harbor是一個用于存儲和分發Docker鏡像的企業級Registry伺服器。
Harbor使用的是官方的docker registry(v2命名是distribution)服務去完成。harbor在docker distribution的基礎上增加了一些安全、通路控制、管理的功能以滿足企業對于鏡像倉庫的需求。
Harbor作為一個企業級私有Registry伺服器,提供了更好的性能和安全,提升使用者使用Registry建構和運作環境傳輸鏡像的效率。
Harbor支援安裝在多個Registry節點的鏡像資源複制,鏡像全部儲存在私有Registry中,確定資料和知識産權在公司内部網絡中管控。
二、安裝部署Harbor倉庫
先将之前的registry容器删除
docker rm -f registry
1. 安裝docker-compose
下載下傳得到docker-compose檔案,将docker-compose二進制檔案放入/usr/local/bin目錄下并賦予權限
docker-compose-Linux-x86_64-1.27.0
mv /root/docker-compose-Linux-x86_64-1.27.0 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose #給其執行權限
2. 解壓Harbor安裝包并配置
tar zxf harbor-offline-installer-v1.10.1.tgz
3. 編輯harbor配置檔案
vim harbor.yml
拷貝證書目錄到配置檔案寫的指定路徑/data目錄下
4. 安裝harbor
執行harbor目錄下install.sh安裝腳本
檢視harbor目錄,存在docker-compose.yml,此時可以啟動docker-compose(必須在harbor目錄下執行)
5. 測試harbor倉庫
真實主機設定域名解析reg.westos.org,然後用真機浏覽器進行通路(浏覽器也可以直接輸入server1的IP進行通路倉庫)
出現此圖是因為倉庫證書是自簽證書浏覽器不信任,直接選擇繼續通路
登陸界面輸入harbor.yml中填入的使用者及密碼即可登陸
這裡library是harbor的預設倉庫
此時server1可以登陸reg.westos.org通過使用者認證後上傳鏡像,通過浏覽器圖像界面檢視鏡像更加直覺
配置server2的docker倉庫源和域名解析
cd /etc/docker
vim deamon.json #寫入倉庫源
systemctl reload docker #重新加載docker配置
docker info #檢視docker資訊
server2從harbor倉庫拉取鏡像
這裡可以看到server2本來沒有nginx鏡像,但是當server2直接運作nginx容器時會自動從harbor的預設倉庫拉取鏡像
在web頁面可以看到我們前面操作的日志記錄
三、Harbor倉庫的使用
建立私有倉庫
建立項目将會建立一個倉庫,不選擇公開項則預設為私有倉庫
還可以建立使用者并為使用者設定密碼,然後将建立的使用者添加到倉庫成員中并設定角色
四、harbor安全驗證
-
–with-notary: 鏡像信任,Notary是Docker鏡像的簽名工具,用來保證鏡像在pull,push和傳輸過程中的一緻性和完整性,避免中間人攻擊,避免非法的鏡像更新和運作。
鏡像信任功能能夠保證鏡像的安全,隻有打了信任标簽的鏡像才能被拉取
- –with-clair: 鏡像安全掃描,Harbor與Clair內建,添加漏洞掃描功能。 預設在運作harbor時漏洞掃描是沒有開啟的,需要重新開啟并添加參數
- –with-chartmuseum: 支援chart倉庫服務
添加harbor安全驗證需要重新安裝harbor倉庫
鏡像安全掃描
添加harbor安全驗證後我們可以對倉庫的鏡像進行安全掃描
可以在倉庫配置管理中設定自動對鏡像進行安全掃描
内容信任
啟用内容信任功能
此時如果上傳鏡像會失敗,因為我們沒有部署根證書
部署根證書:
mkdir ~/.docker/tls/reg.westos.org:4443 -p
cd ~/.docker/tls/reg.westos.org:4443
cp /etc/docker/certs.d/reg.westos.org/ca.crt .
再次進行鏡像上傳,可以看到簽名成功并上傳
上傳成功的鏡像在浏覽器中檢視可以看到顯示已簽名
現在用server2拉取私有倉庫中未簽名的鏡像将會被拒絕
當我們上傳倉庫已經存在的鏡像時會顯示exsit,是以需要修改鏡像标簽,我們隻用輸入repository key
密碼為 westos12345 這些内容都在harbor.yml配置檔案中
關閉内容信任功能
export DOCKER_CONTENT_TRUST=0