搭建Docker私服鏡像倉庫Harbor

1、概述

Harbor是由VMware公司開源的企業級的Docker Registry管理項目,它包括權限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復制和中文支持等功能。

Harbor 的所有組件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。

由于 Harbor 是基于 Docker Registry V2 版本,所以 docker 版本必須 > = 1.10.0 docker-compose >= 1.6.0

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)

1.1 架構圖

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是一個用于存儲和分發Docker鏡像的企業級Registry服務器,整體架構還是很清晰的。架構圖如下:
在這里插入圖片描述

2、安裝docker

Harbor要依賴Docker,所以要先安裝,見:Ubuntu20.04安裝Docker

3、下載Harbor

訪問harbor release page,下載Harbor軟件tgz壓縮包。
在這里插入圖片描述

4、解壓

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

解壓后出現一個 hardor 的文件夾,進去之后查看
在這里插入圖片描述
此時還沒有 harbor.yml 和 docker-compose.yml,復制一份harbor.yml.tmpl ,然后進行修改

cp harbor.yml.tmpl harbor.yml

主要改下面地方,填上hostname,port,注釋掉https相關
在這里插入圖片描述

5、安裝

在當前 harbor 目錄下執行./install.sh
在這里插入圖片描述
等待安裝成功。會出現上面提到的 docker-compose.yml文件,里面包含了harbor依賴的鏡像和對應容器創建的信息。
在這里插入圖片描述
在這里插入圖片描述

6、安裝docker-compose

# 安裝
curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 授權
chmod +x /usr/local/bin/docker-compose

7、執行docker-compose

在harbor的目錄下執行以下命令

# 啟動
docker-compose up -d# 停止
docker-compose down

啟動后使用docker ps -a查看harbor相關容器啟動情況(總計9個):
在這里插入圖片描述

8、訪問

根據上面的配置的IP,訪問 http://172.28.168.223:5180
在這里插入圖片描述
默認用戶 和登錄密碼 可以從 harbor.yml 中找到,官網有個地方也有說明

admin / Harbor12345

在這里插入圖片描述
登錄成功
在這里插入圖片描述

9、使用

9.1 創建用戶和項目

首先有一個 public 的 library 項目,在里面創建對應的用戶即可pull 和 push鏡像,也可以創建其它項目
在這里插入圖片描述

9.2 docker配置 harbor

結合docker實現鏡像上傳和下載,在/etc/docker/daemon.json添加以下內容
IP為harbor的IP地址和端口,端口如果是80可省略

# 倉庫IP地址和端口,或者是域名,要加上http或https
"insecure-registries":["http://172.28.168.223:5180"],"registry-mirrors":["http://172.28.168.223:5180"]

在這里插入圖片描述

  • registry-mirrors:配置的是阿里云鏡像加速,該文的問題不需要配置該項
  • insecure-registries:允許 Docker 客戶端連接到沒有使用 HTTPS 或使用了自簽名證書的 Docker 鏡像倉庫
    registry-mirrors:必須配置你的harbor倉庫!!!否則可能造成,docker login是成功的,但是push鏡像時出現相同的問題

重啟docker:service docker restart
重啟harbor

# 停止
docker-compose down# 啟動
docker-compose up -d

9.3 登錄倉庫

docker login -u 'admin' -p 'Harbor12345'  http://172.28.168.223:5180

在這里插入圖片描述

9.2 上傳鏡像到harbor

在上傳鏡像前,需要為鏡像打上標簽,命令如下:

docker tag <image_name> <harbor_host>/<project_name>/<image_name>:<tag>

以redis鏡像為例:

docker tag redis:5.0.10 172.28.168.223:5180/library/redis:5.0.10

在這里插入圖片描述
上傳鏡像,命令如下:

docker push <harbor_host>/<project_name>/<image_name>:<tag>

上傳redis鏡像到harbor

docker push 172.28.168.223:5180/library/redis:5.0.10

在這里插入圖片描述
登錄harbor控制臺查看,在library項目下有redis鏡像
在這里插入圖片描述

9.3 harbor拉取鏡像

先刪除上面本地的redis鏡像172.28.168.223:5180/library/redis:5.0.10

docker rmi 172.28.168.223:5180/library/redis:5.0.10

拉取鏡像的命令

# image_name是要拉取的鏡像名稱,project_name是Harbor中的項目名稱,tag是鏡像的版本號
docker pull <harbor_host>/<project_name>/<image_name>:<tag>

拉取redis鏡像

docker pull 172.28.168.223:5180/library/redis:5.0.10

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10395.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10395.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10395.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PermissionError: [Errno 13] Permission denied: ‘xx.xlsx‘的解決辦法

我在轉換文件的時候遇到這個報錯&#xff0c;原因是文件名與已有文件名重復了 解決辦法很簡單&#xff0c;如下圖把" " 里的名字換成不重復的&#xff0c;再次允許代碼&#xff0c;會恢復正常

ue引擎游戲開發筆記(37)——實現敵人接收攻擊傷害,并作出反應

1.需求分析&#xff1a; 現在已經顯示造成實際傷害&#xff0c;但敵人對實際傷害并未產生反饋&#xff0c;例如還擊&#xff0c;或者死亡倒地等等&#xff0c;實現敵人對于受擊的反饋。 2.操作實現&#xff1a; 1.思路&#xff1a;在動畫藍圖中添加死亡動畫&#xff0c;并通過…

【姿態解算與濾波算法】

姿態解算 一、主線 姿態表示方式&#xff1a;矩陣表示&#xff0c;軸角表示&#xff0c;歐拉角表示&#xff0c;四元數表示。 慣性測量單元IMU&#xff08;Inertial Measurement Unit&#xff09;&#xff1a;MPU6050芯片&#xff0c;包含陀螺儀和加速度計&#xff0c;分別測…

winhex工具,將文件轉換為16進制數據放入代碼。

今天介紹winhex工具&#xff0c;可以將任何內容讀取讀取為16進制數據。下面看下效果。 下載鏈接&#xff1a; WinHex: Hex Editor & Disk Editor, Computer Forensics & Data Recovery Software 一、WinHex打開文件 我們要打開的文件&#xff1a; 打開后&#xff1a; 我…

服務器遠程桌面局域網連接不上的解決方法

在企業網絡環境中&#xff0c;服務器遠程桌面局域網連接不上是一個常見且棘手的問題。這種問題可能導致工作效率下降&#xff0c;甚至影響業務運營。因此&#xff0c;我們需要采取專業的方法來解決這一問題。 服務器遠程桌面局域網連接不上的解決方法&#xff1a; 1、確保服務器…

SQL注入-通達OA SQL注入漏洞【CVE-2023-4166】原理及檢測思路分析

1、漏洞描述 通達OA中發現一個漏洞&#xff0c;并被列為嚴重漏洞。該漏洞影響文件general/system/seal_manage/dianju/delete_log.php的未知代碼。對參數 DELETE_STR 的操作會導致 sql 注入。 2、影響范圍 通達OA版本11.10之前 3、復現環境 FOFA搜索&#xff1a;app"TDX…

解鎖網站SEO優勢,百度站長工具助您一臂之力(百度站長平臺還提供了哪些工具供seo人員使用?)

在當今數字化時代&#xff0c;網站已經成為企業宣傳、產品銷售、信息發布的主要渠道之一。有著再好的網站&#xff0c;如果在百度等搜索引擎中無法被用戶搜索到&#xff0c;那就等于白搭。因此&#xff0c;網站的SEO優化顯得尤為重要。而作為國內最大的搜索引擎&#xff0c;百度…

LoRa模塊學習

什么是LoRa調制 LoRa&#xff08;Long Range&#xff0c;遠距離&#xff09;是一種調制技術&#xff0c;與同類技術相比&#xff0c;提供更長的通信距離。調制是基于擴頻技術&#xff0c;線性調制擴頻&#xff08;CSS&#xff09;的一個變種&#xff0c;具有前向糾錯&#xff…

安裝SQL Server詳細教程_sql server安裝教程

一&#xff0c;SQL Server數據庫安裝 1.首先&#xff0c;下載安裝程序 &#xff08;1&#xff09;從網盤下載安裝exe 點擊此處直接下載 &#xff08;2&#xff09;從官網下載安裝exe文件 在官網選擇Developer進行下載 2.開始安裝 雙擊安裝程序&#xff0c;開始安裝 這里直…

python-pytorch seq2seq+attention筆記0.5.00

python-pytorch seq2seq+attention筆記0.5.00 1. LSTM模型的數據size2. 關于LSTM的輸入數據包含hn和cn時,hn和cn的size3. LSTM參數中默認batch_first4. Attention機制的三種算法5. 模型的編碼器6. 模型的解碼器7. 最終模型8. 數據的準備9. 遇到的問題10. 完整代碼1. LSTM模型的…

PHP數值數組講解,for循環及函數 遍歷數組獲取元素

源碼 <?phpheader("Content-Type:text/html;Charsetutf8");//創建數值數組$arr1 array();//簡化創建語法 $arr2 [];//通過索引為數組添加不同類型的元素$arr1[0] "zhangsan" ;//也可以亂序添加元素$arr1[2] 12 ;$arr1[1] true ; //true輸出為1 f…

搭建vue3組件庫(四): 樣式庫搭建

文章目錄 1. 樣式目錄文件架構2. SCSS 樣式變量2.1 設置顏色 SCSS 變量2.2 設置多種類型主題2.3 生成全局類型主題 SCSS 變量2.4 分組生成 SCSS 變量 1. 樣式目錄文件架構 packages/theme-chalk 目錄結構&#xff1a; ├── packages │ ├── theme-chalk │ │ ├─…

excel表格里,可以把百分號放在數字前面嗎?

在有些版本里是可以的&#xff0c;這樣做&#xff1a; 選中數據&#xff0c;鼠標右鍵&#xff0c;點擊設置單元格格式&#xff0c;切換到自定義&#xff0c;在右側欄輸入%0&#xff0c;點擊確定就可以了。 這樣設置的好處是&#xff0c;它仍舊是數值&#xff0c;并且數值大小沒…

說一下 hibernate 的緩存機制?

Hibernate 的緩存機制是為了提高應用程序的性能&#xff0c;通過減少對數據庫物理數據源的訪問頻次而設計的。Hibernate 的緩存主要可以分為兩個級別&#xff1a;一級緩存&#xff08;也稱為 Session 級別的緩存&#xff09;和二級緩存&#xff08;也稱為 SessionFactory 級別的…

Veeam - 數據保護和管理解決方案_Windows平臺部署備份還原VMware手冊

Veeam - - 數據保護和管理解決方案 Veeam Backup & Replication Console Veeam Data Platform Veeam Backup & Replication是一款強大的虛擬機備份、恢復和復制解決方案 安全備份、干凈恢復和數據彈性 — 即時交付 在混合云中隨時隨地管理、控制、備份和恢復您的所有數…

ARM時鐘樹結構(GD32)

時鐘樹的簡易框圖 初始化配置系統時鐘 配置系統初始化時鐘&#xff08;參考手冊&#xff09; 對應hal庫函數 使用72MHz的系統時鐘 do -----------while&#xff08;0&#xff09;的使用方法 系統時鐘 #include <stdint.h> #include "gd32f30x.h"int main(void)…

配置Docker對象與管理守護進程

前言&#xff1a;本博客僅作記錄學習使用&#xff0c;部分圖片出自網絡&#xff0c;如有侵犯您的權益&#xff0c;請聯系刪除 本章節的快速目錄導航&#xff1a; 一、配置Docker對象 1.1、Docker對象的標記 1.2、格式化命令和日志的輸出 二、示例&#xff1a; 2.1、管理…

(delphi11最新學習資料) Object Pascal 學習筆記---第11章第2節 (接口的多態性)

11.2.4 接口的多態性 ? 在上一節中&#xff0c;我們看到了如何定義多個接口&#xff0c;并讓一個類實現其中的兩個接口。當然&#xff0c;這可以擴展到任何數量。您還可以創建接口的層次結構&#xff0c;因為一個接口可以繼承另一個接口&#xff1a; ITripleJumper interfa…

開源RAG框架匯總

前言 本文搜集了一些開源的基于LLM的RAG&#xff08;Retrieval-Augmented Generation&#xff09;框架&#xff0c;旨在吸納業界最新的RAG應用方法與思路。如有錯誤或者意見可以提出&#xff0c;同時也歡迎大家把自己常用而這里未列出的框架貢獻出來&#xff0c;感謝~ RAG應用…

【代碼隨想錄37期】Day04 兩兩交換鏈表中的節點、刪除鏈表的倒數第N個節點、鏈表相交、環形鏈表II

兩兩交換鏈表中的節點 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), ne…