Harbor 部署安裝

1. Harbor簡介

Harbor是構建企業級私有docker鏡像的倉庫的開源解決方案,它是Docker Registry的更高級封裝,它除了提供友好的Web UI界面,角色和用戶權限管理,用戶操作審計等功能外,它還整合了K8s的插件(Add-ons)倉庫,即Helm通過chart方式下載,管理,安裝K8s插件,而chartmuseum可以提供存儲chart數據的倉庫。

另外它還整合了兩個開源的安全組件,一個是Notary,另一個是Clair,Notary類似於私有CA中心,而Clair則是容器安全掃描工具,它通過各大廠商提供的CVE漏洞庫來獲取最新漏洞信息,並掃描用戶上傳的容器是否存在已知的漏洞信息,這兩個安全功能對於企業級私有倉庫來說是非常具有意義的。

2. 安裝docker-compose組件

yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install docker-compose 
docker-compose version

 

3. 安裝Harbor

安裝Docker

先按《安裝Docker》文檔安裝好decker環境

修改docker配置項

vi /usr/lib/systemd/system/docker.service

修改下面內容項(insecure-registry值爲當前服務器ip)

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --selinux-enabled=false --insecure-registry 192.168.15.216

重啓服務

systemctl daemon-reload
systemctl restart docker

 

獲取Harbor安裝包下載鏈接

登錄 https://github.com/goharbor/harbor/releases/ 找到想要安裝的版本,獲取offline版本的下載鏈接

執行命令安裝Harbor

複製代碼

# 創建日誌存放目錄
mkdir -p /data/logs/harbor

cd /usr/local/src/
wget https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz
tar -zxvf harbor-offline-installer-v1.10.0.tgz
cd harbor
vi harbor.yml

複製代碼

修改以下內容

複製代碼

# 當前服務器ip,安裝完成後就可以用這個地址訪問web管理頁面
hostname: 192.168.1.xx

# 將https的所有項註釋掉,不開啓https訪問
#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

# harbor ui後臺管理員密碼  
harbor_admin_password: xxxxx
#必須設置,否則安裝後重裝時不能修改,除非刪除數據庫後重新安裝
password: xxxx
# harbor日誌存放路徑
location: /data/logs/harbor

複製代碼

然後運行腳本進行安裝

./prepare
./install

 

驗證安裝

在瀏覽器輸入你的服務器地址 http://192.168.1.xx/ 訪問管理頁面

輸入賬號:admin 以及配置參數時的管理員密碼,就可以正常登錄了

 

docker-compose啓動與停止命令

docker-compose start
docker-compose stop

 

修改配置操作

如果需要更改harbor的配置項,可按以下步驟進行修改更新

docker-compose down -v
vim /usr/local/harbor/harbor.yml
./prepare
docker-compose up -d

 

測試鏡像的拉取與更新

PS:可以在另一臺安裝了docker的服務器上做以下測試

配置registry服務是安全可信賴的

vi /etc/docker/daemon.json

將內容修改爲下面配置(insecure-registries要改爲你的服務器地址)

複製代碼

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "insecure-registries": [
    "192.168.1.xx"
  ],
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://a8qh6yqv.mirror.aliyuncs.com",
    "http://hub-mirror.c.163.com"
  ]
}

複製代碼

重啓docker

systemctl restart docker

測試鏡像拉取與更新

複製代碼

# 從官網https://hub.docker.com/search?q=&type=image 拉取鏡像
docker pull redis

# 查看已下載的鏡像
docker images

# 使用tag將鏡像標誌爲要推送到私有倉庫的鏡像(默認私有倉庫鏡像目錄爲library)
docker tag redis 192.168.1.xx/library/redis
# 命令中,redis後面不添加版本參數,則表示當前版本號爲latest,可以指定爲:v1.0.0等版本號,指定後拉取鏡像時,也需要加上版本號

# 登錄harbor,這裏需要添加url參數,不然默認登錄的是官網,url需要加上http,不然默認是https
docker login http://192.168.1.xx
# 輸入用戶名admin,以及密碼,如果是後臺新建的賬號,需要在項目=>library(對應的項目名稱)=>成員 中添加對應的賬號

# 將鏡像提交到私有倉庫中
docker push 192.168.1.xx/library/redis
# 提交後登錄web管理端,進入項目=>library(對應的項目名稱)=>鏡像倉庫 就可以看到新增的鏡像了

# 測試從私有倉庫中安裝鏡像
# 查看當前服務器鏡像
docker images

# REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
# 192.168.1.xx/library/redis   latest              c33c9b2541a8        33 hours ago        98.2MB
# redis                          latest              c33c9b2541a8        33 hours ago        98.2MB

# 刪除當前服務器docker上的鏡像
docker rmi 192.168.1.xx/library/redis:latest
docker rmi redis:latest

# 查看當前服務器鏡像(redis鏡像已不存在)
docker images

# 從私有倉庫中安裝鏡像
docker pull 192.168.1.xx/library/redis

# 查看當前服務器鏡像
docker images

# REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
# 192.168.1.xx/library/redis   latest              c33c9b2541a8        33 hours ago        98.2MB

複製代碼

 

以上操作都是在私有倉庫中的默認庫library操作的,如果需要分項目創建不同的庫,可以登錄web管理端,在項目中創建新的庫

如果需要針對不同的人員操作倉庫進行管理,可以在用戶管理中添加賬號,然後在新建庫的成員中,添加用戶並綁定對應的操作權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章