容器映象倉庫-Harbor的安裝及踩坑

2023-02-06 06:01:31

之前實驗室的師兄讓我幫忙給伺服器上裝一個Harbor,花了不少時間,遂記錄之,以避坑。
在學習使用Harbor之前,需要了解Docker的使用,可以看看我之前的部落格:應用容器引擎-DockerDockerfile詳解,在此之後,你還需要知道如何部署一個前後端分離的專案:部署實戰-Docker+nginx部署前後端分離專案
@Author:Akai-yuan
@更新時間:2023/2/5

1.harbor-assets下載

Harbor下載連結
紅色箭頭的是離線下載的壓縮檔案,已經將一些元件打包好了,不需要自己再去手動install或者pull images等需要連網的操作了。
藍色箭頭下是需要線上安裝的壓縮檔案,需要保證你的虛擬機器器有網路,現在網上的資料大多數是該類的安裝教學。

等待安裝中:

2.Harbor安裝細則

1.登入虛擬機器器

2.新建一個存放harbor檔案的資料夾

mkdir /home/topview/harbor

3.檢查路徑

pwd

4.傳輸tgz壓縮檔案

執行遠端傳輸檔案命令:
注意:這裡可以選擇直接使用Xftp傳輸,使用rz指令可能會有亂碼資料夾生成,需要手動刪除,很麻煩

rz

5.傳輸完成後檢查資料夾是否存在壓縮檔案

6.執行壓縮命令

tar -zxvf harbor-offline-installer-v2.6.2.tgz

7.拷貝harbor的組態檔

cp harbor.yml.tmpl harbor.yml

8.檢視資料夾下檔案

9.編輯harbor.yml檔案

vi harbor.yml

10.開始編輯

點選鍵盤a鍵開啟修改模式

11.修改組態檔內容

設定埠時記得檢視所有的被佔用的埠,不要和正在使用的埠重複:

netstat -ntulp

組態檔修改內容:
(1)設定hostname存取地址
(2)設定port埠號,注意避免和佔用埠重複
(3)將https註釋掉
(4)修改harbor倉庫資料目錄

此處有兩種選擇:
(1)採用http協定通訊,註釋https,只不過此處後面需要給daemon.json檔案修改設定
(2)採用https協定,http保留作為兜底防止https失效,不過這樣做很麻煩,會需要你去申請證書,步驟非常繁瑣,而且容易出錯。連結:harbor設定https存取

  ...
 hostname: 192.168.1.18   //設定存取地址,可以是ip、主機名,不可以設定為127.0.0.1或localhost
 # http related config
 http:             //啟用http
 # port for http, default is 80. If https enabled, this port will redirect to https port
    port: 80       //http預設埠為80
 //將https註釋掉,以關閉https支援
 # https related config
 #https:                //註釋
 # https port for harbor, default is 443
 # port: 443           //註釋
 # The path of cert and key files for nginx
 # certificate: /your/certificate/path     //註釋
 # private_key: /your/private/key/path     //註釋
 ... 
 # Remember Change the admin password from UI after launching Harbor.
 harbor_admin_password: Harbor12345      //harbor登入密碼
 ...
 # The default data volume
 data_volume: /opt/harbor/data        //修改harbor倉庫資料目錄
 ...

12.儲存

點選左上角 **Esc鍵 **後,輸入 **:wq **再點選 Enter鍵 儲存成功

13.修改daemon.json組態檔

vim /etc/docker/daemon.json

補充具體內容如下:

{
  "registry-mirrors": ["https://mg4q1xho.mirror.aliyuncs.com"],
    "insecure-registries": ["10.21.23.91:80"]
}

注意新增"insecure-registries": ["10.21.23.91:80"],別忘了前面的逗號。

14.啟動安裝指令碼

./install.sh

15.重新執行,安裝成功

16.推播映象到harbor

首先docker tag

docker tag adoptopenjdk/maven-openjdk8 10.21.23.91:80/library/maven-openjdk8:latest

然後docker push

docker push 10.21.23.91:80/library/maven-openjdk8:latest

此時登入harbor檢視映象是否存在:

映象可以從DockerHub中找到:
https://hub.docker.com/r/adoptopenjdk/maven-openjdk8
https://hub.docker.com/r/adoptopenjdk/maven-openjdk11

17.製作jdk+maven docker映象

連結如下:
https://blog.csdn.net/cloud_engineer/article/details/126690346

18.修改域名與ip對映

此處因為涉及到流水線,gitlab-ci.yml組態檔需要從harbor中拉取映象,所以必須和gitab-ci.yml中的映象同名。
此處image中就是從harbor中拉取映象,newharbor.server.topviewclub.cn就是域名,需要修改宿主機中的hosts檔案,ip與自定義域名對映起來。

cd /etc
vim hosts

寫成ip[空格]域名形式就好