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為基礎,額外提供瞭如下功能:
->
-> 基於策略的映象複製(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
三、安裝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