上圖配置為工作環境
特別注意:win10現在不允許使用私有ca證書,到時登錄瀏覽器會失敗,可以選用火狐瀏覽器。
創建自己的CA證書
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
上面從上到下分別表示:中國、北京、北京、公司名雲計算、證書綁定的域名
生成證書簽名請求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.yunjisuan.com.key -out www.yunjisuan.com.csr
上面可以設置密碼,這里演示就不設置了
生成注冊表主機的證書
openssl x509 -req -days 365 -in www.yunjisuan.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.yunjisuan.com.crt
三、信任自簽發的域名證書
將自簽ca證書添加到系統信任
讓系統信任設置立即生效
四、Harbor 1.4 版本配置與安裝
注意:要關閉防火牆和selinux
4.1 安裝docker-ce社區版
先關閉selinux 安裝依賴包
然后運行curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo獲取docker-ce.repo包
啟動docker,並加入開機自啟動
4.2 下載並安裝harbor私有倉庫
創建harbor的證書目錄,並復制
先mkdir -p /etc/ssl/harbor
創建harbor下載目錄並下載harbor-offline-installer-v1.5.0.tgz
下載包:wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
把原配置文件修改如下圖:第7行必須寫域名,跟之前創建的證書一致、第11行改成https、第23行和24行指向證書位置
到第68行查看默認密碼,
安裝命令docker-compose(需要1.21版本)
安裝harbor私有鏡像倉庫(參數--with-clair是啟用漏洞掃描)
登錄瀏覽器(火狐瀏覽器),輸入本機ip地址訪問
點擊高級
再點擊添加例外
點擊確認安全例外
用戶名為admin 密碼為之前在配置文件里看到的Harbor12345
接下來進行安全設置
在配置管理里-項目創建 改為僅管理員,認證模式不用改(企業中改為LDAP認證)
在項目->library->配置管理里把自動掃描鏡像勾選,企業中把阻止潛在漏洞鏡像也勾選
在linux上登錄
可以看到上面輸入IP地址,結果報錯,這里必須用域名
用域名時先需要映射一下
非交互式登錄:
上傳鏡像(以centos為例):
格式必須為docker push 域名/庫名/鏡像名
上傳成功:
其他電腦要登錄harbor時,需要認證證書,同時需要讓那台電腦信任認證證書,前面已經講過了,記住,信任完后需要重啟docker
映射也別忘了做
從harbor上下載時也是和上傳時格式一樣
harbor鏡像的復制與同步
harbor私有倉庫的主從復制,類似於MySQL,屬於一對多的復制
部署harbor-slave:再安裝一個harbor私有倉庫作為harbor的從庫,域名為www2.yunjisuan.com
創建證書,並讓linux信任證書,然后重啟docker服務
這時,要把www2.yunjisuan.com.crt 發送給主harbor,並讓主harbor信任該證書
然后在主barbor上執行操作
注意:這時登錄網站還可以進入主harbor,如果不能進入,就執行上面的install那,從那開始重新執行一遍
然后再在從harbor上也進行install那部分的操作
cat harbor.cfg文件,把www.yunjisuan.com都改為www2.yunjisuan.com
把www2.yunjisuan.com.key和www2.yunjisuan.com.crt復制到/etc/ssl/harbor/下
接下來和上面講的一樣
賬號密碼還是和之前一樣
可以看到從harbor里面是空的,接下來在主harbor上操作
倉庫管理-->新建目標
注意,上面的驗證遠程證書不要勾,然后測試連接
可以發現,連接是失敗的,
日志文件在/var/log/harbor/下,有很多日志,我們可以看ui.log分析錯誤
因為URL那輸入的必須是域名,即:www2.yunjisuan.com,可是harbor的主從復制是直接查詢DNS的,而不是映射,所以我們還需要配置一下DNS服務才能解析出域名
進入linux虛擬機進行登錄看看
linux上是成功的,linux上是先查詢映射
再開一台虛擬機,配置一下DNS解析服務:
創建正向解析
上圖中的yunjisuan.com.zone是復制named.empty得來的,cp -p named.empty yunjisuan.com.zone
注意:一定要帶-p ,這是復制時把屬主和屬組都復制,不帶-p到時會出現權限錯誤
編輯配置文件:
驗證並開啟DNS服務:
驗證DNS的功能:
在主harbor上把網關改為之前配置DNS服務的虛擬機的ip:
這時,還是連接失敗,這是因為緩存的關系,需要重啟docker服務
可以看到,終於連接成功了,然后點擊確定
點擊復制管理-->新建規則 定義把哪些鏡像同步過去
再點擊保存
再去從harbor看看
從庫已經傳輸完畢,主從復制搭建成功