harbor搭建
1.Harbor簡介
Harbor是由VMware公司開源的企業級的Docker Registry管理項目,它包括權限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復制和中文支持等功能。
作為一個企業級私有 Registry 服務器,Harbor 提供了更好的性能和安全。提升用戶使用 Registry 構建和運行環境傳輸鏡像的效率。Harbor 支持安裝在多個 Registry 節點的鏡像資源復制,鏡像全部保存在私有 Registry 中, 確保數據和知識產權在公司內部網絡中管控。另外,Harbor 也提供了高級的安全特性,諸如用戶管理,訪問控制和活動審計等。
-
基于角色的訪問控制 - 用戶與 Docker 鏡像倉庫通過 “項目” 進行組織管理,一個用戶可以對多個鏡像倉庫在同一命名空間(project)里有不同的權限。
-
鏡像復制 - 鏡像可以在多個 Registry 實例中復制(同步)。尤其適合于負載均衡,高可用,混合云和多云的場景。
-
圖形化用戶界面 - 用戶可以通過瀏覽器來瀏覽,檢索當前 Docker 鏡像倉庫,管理項目和命名空間。
-
AD/LDAP 支持 - Harbor 可以集成企業內部已有的 AD/LDAP,用于鑒權認證管理。
-
審計管理 - 所有針對鏡像倉庫的操作都可以被記錄追溯,用于審計管理。
-
國際化 - 已擁有英文、中文、德文、日文和俄文的本地化版本。更多的語言將會添加進來。
-
RESTful API - RESTful API 提供給管理員對于 Harbor 更多的操控,使得與其它管理軟件集成變得更容易。
-
部署簡單 - 提供在線和離線兩種安裝工具, 也可以安裝到 vSphere 平臺 (OVA 方式) 虛擬設備
2.Harbor搭建
安裝說明: Harbor的所有服務組件都是在Docker中部署的,所以官方安裝使用Docker-compose快速部署,所以需要安裝 Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0, Docker-compose版本不小于1.6.0。
訪問方式:https
安裝路徑:/opt/software/harbor
掛載路徑:/home/harbor_data/
https訪問證書路徑:/opt/software/harbor_certs/
① 下載并解壓安裝包
在線下載:
wget https://github.com/goharbor/harbor/releases/download/v2.7.2/harbor-online-installer-v2.7.2.tgz
tar -xvf harbor-online-installer-v2.7.2.tgz
離線安裝(推薦):
先到 Release v2.7.2 · goharbor/harbor · GitHub 下載harbor-online-installer-v2.7.2.tgz安裝包,然后解壓安裝。
② 生成CA證書
-
生成文件夾/opt/software/harbor_certs用于存放證書;
-
創建key文件
cd /opt/software/harbor_certs
openssl genrsa -out ca.keifconfigy 4096
-
生成證書,生成ca.crt和ca.key
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=58.210.96.146" \
-key ca.key \
-out ca.crt
③ 生成服務器證書
-
創建私鑰
openssl genrsa -out server.key 4096
-
生成證書簽名請求
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.96.146" \
-key server.key \
-out server.csr
④ 生成harbor倉庫主機證書
-
創建一個 v3.ext 文件
sudo vim v3.ext
寫入以下內容:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:192.168.96.146
-
生成harbor倉庫主機證書
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in server.csr \
-out server.crt
⑤ 編輯配置文件
進入解壓后的harbor文件夾
cp harbor.yml.tmpl harbor.yml # 復制一份harbor.yml文件
vim harbor.yml
https方式:
編輯:
-
hostname改為本機ip(192.168.96.146)
-
修改為其他指定端口(58087)
-
向harbor提供證書
-
修改如下圖紅框中內容

http方式(不推薦,因為需要重啟docker):
編輯:
-
hostname改為本機ip(10.0.1.3)
-
修改為其他指定端口(8087)
-
修改如下圖紅框中內容
-
修改/etc/docker/daemon.json,給insecure-registries中添加”10.0.1.3:8087“
-
然后執行systemctl daemon-reload 和 systemctl restart docker
⑥ 準備安裝環境
./prepare # 執行prepare腳本
執行完成后,本地生成一個docker-compose.yml文件和common目錄;
https方式:
注意!?。。河捎谠趆arbor.yml中修改的指定端口是外網的58087,所以在執行./prepare的時候,生成的docker-compose.yml的文件中的端口映射為58087:8443,需要把外網端口58087改成內網端口8087,如下圖:
http方式:
注意docker-compose.yml文件端口如下:
⑦ 安裝harbor(只需要安裝時執行)
./install.sh # 安裝harbor
安裝過程中會自動下載harbor鏡像并啟動相關容器。
harbor.yml文件中可查看或修改密碼
⑧ 啟動harbor
cd /opt/software/harbor
sudo docker-compose -f docker-compose.yml up -d
使用harbor
1. 訪問harbor
網頁訪問:https://192.168.96.146:58087
默認管理員賬號和密碼為:admin Harbor12345
2. 向docker提供證書
將server.crt和ca.crt復制到docker所在的機器固定目錄中
1. 創建文件夾
cd /etc/docker/certs.d
sudo mkdir 192.168.96.146:58087
2. 復制文件
sudo cp server.crt /etc/docker/certs.d/192.168.96.146:58087/
sudo cp ca.crt /etc/docker/certs.d/192.168.96.146:58087/
登錄
docker login 192.168.96.146:58087
3. 上傳鏡像
打tag推送鏡像到harbor
docker tag detection_webserver:0.4.2 192.168.96.146:58087/detection/detection_webserver:0.4.2
docker push 192.168.96.146:58087/detection/detection_webserver:0.4.2
4. 拉取鏡像
docker pull 192.168.96.146:58087/detection/detection_webserver:0.4.2

浙公網安備 33010602011771號