1. 程式人生 > 其它 >Centos7搭建docker-harbor

Centos7搭建docker-harbor

一、Harbor倉庫介紹

 

我們在日常Docker容器使用和管理過程中,漸漸發現部署企業私有倉庫往往是很有必要的, 它可以幫助你管理企業的一些敏感映象, 同時由於Docker Hub的下載速度和GFW的原因, 往往需要將一些無法直接下載的映象匯入本地私有倉庫. 而Harbor就是部署企業私有倉庫的一個不二之選。Harbor是由VMware公司開源的企業級的Docker Registry管理專案,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基於角色訪問的控制權限管理(RBAC)、AD/LDAP整合、日誌稽核、管理介面、自我註冊、映象複製和中文支援等。Harbor的目標是幫助使用者迅速搭建一個企業級的Docker registry服務。它以Docker公司開源的registry為基礎,額外提供瞭如下功能:
->

  基於角色的訪問控制(Role Based Access Control)
->  基於策略的映象複製(Policy based image replication)
->  映象的漏洞掃描(Vulnerability Scanning)
->  AD/LDAP整合(LDAP/AD support)
->  映象的刪除和空間清理(Image deletion & garbage collection)
->  友好的管理UI(Graphical user portal)
->  審計日誌(Audit logging)
->  RESTful API
->  部署簡單(Easy deployment)

 

Harbor的所有元件都在Dcoker中部署,所以Harbor可使用Docker Compose快速部署。需要特別注意:由於Harbor是基於Docker Registry V2版本,所以docker必須大於等於1.10.0版本docker-compose必須要大於1.6.0版本

 

二、Harbor倉庫結構

 

Harbor的每個元件都是以Docker容器的形式構建的,可以使用Docker Compose來進行部署。如果環境中使用了kubernetes,Harbor也提供了kubernetes的配置檔案。Harbor大概需要以下幾個容器組成ui(Harbor的核心服務)、log(執行著rsyslog的容器,進行日誌收集)、mysql

(由官方mysql映象構成的資料庫容器)、Nginx(使用Nginx做反向代理)、registry(官方的Docker registry)、adminserver(Harbor的配置資料管理器)、jobservice(Harbor的任務管理服務)、redis(用於儲存session)。

 

 

、安裝Harbor

實驗環境centos7

 

主節點192.168.59.129

 

實驗節點192.168.59.130

1.檢查主機基礎環境並升級核心(安裝docker和docker-compose關閉防護牆,檢視py版本等)

 

 

 升級核心可以直接官網下載rpm軟體包進行安裝或者可以參考:https://www.cnblogs.com/fengshilei/p/15648622.html

2.安裝docker-compose

# 下載docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.18.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 新增可執行許可權
sudo chmod +x /usr/local/bin/docker-compose
# 將檔案copy到 /usr/bin/目錄下
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 檢視版本
docker-compose --version

3.下載Harbor安裝檔案

從 github harbor 官網 release 頁面下載指定版本的安裝包。

1)線上安裝包
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz
tar xvf harbor-online-installer-v1.1.2.tgz
2)離線安裝包
wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz
tar xvf harbor-offline-installer-v1.5.1.tgz

4.配置Harbor

解壓縮之後,目錄下回生成 harbor.conf 檔案,該檔案就是Harbor的配置檔案

 

 

## Configuration file of Harbor

# hostname設定訪問地址,可以使用ip、域名,不可以設定為127.0.0.1或localhost
hostname = 192.168.80.42

# 訪問協議,預設是http,也可以設定https,如果設定https,則nginx ssl需要設定on
ui_url_protocol = http

# mysql資料庫root使用者預設密碼root123,實際使用時修改下
db_password = root123

max_job_workers = 3 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA

# 郵件設定,傳送重置密碼郵件時使用
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false

# 啟動Harbor後,管理員UI登入的密碼,預設是Harbor12345
harbor_admin_password = Harbor12345

# 認證方式,這裡支援多種認證方式,如LADP、本次儲存、資料庫認證。預設是db_auth,mysql資料庫認證
auth_mode = db_auth

# LDAP認證時配置項
#ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
#ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
#ldap_uid = uid 
#ldap_scope = 3 
#ldap_timeout = 5

# 是否開啟自注冊
self_registration = on

# Token有效時間,預設30分鐘
token_expiration = 30

# 使用者建立專案許可權控制,預設是everyone(所有人),也可以設定為adminonly(只能管理員)
project_creation_restriction = everyone

verify_remote_cert = on

5.啟動harbor

修改完配置檔案後,在的當前目錄執行 ./install.sh,Harbor服務就會根據當期目錄下的 docker-compose.yml開始下載依賴的映象,檢測並按照順序依次啟動各個服務,Harbor依賴的映象及啟動服務如下:

 

 啟動完成後,我們訪問剛設定的 hostname 即可 http://192.168.59.130/,預設是80埠,如果端口占用,我們可以去修改docker-compose.yml檔案中,對應服務的埠對映

 

 

 安裝參考連線:https://blog.csdn.net/qq_35959573/article/details/80664353

       https://www.cnblogs.com/kevingrace/p/6547616.html