Docker 學習(二)——基于Registry、Harbor搭建私有倉庫

Docker倉庫是集中存儲和管理Docker鏡像的平臺,支持鏡像的上傳、下載、版本管理等功能。

一、Docker倉庫分類

1.公有倉庫

????????Docker Hub:官方默認公共倉庫,提供超過10萬+鏡像,支持用戶上傳和管理鏡像。

????????第三方平臺:如阿里云ACR、騰訊云TCR等,提供鏡像加速和企業級功能。

2。私有倉庫

????????Registry:Docker官方提供的基礎私有倉庫工具,支持本地部署,但功能較簡單。

????????Harbor:企業級私有倉庫,支持角色權限、審計日志、鏡像掃描等高級功能,適合生產環境。

3.混合倉庫

????????云服務集成:如阿里云ACR、華為云SWR,結合公有云和私有倉庫優勢,提供安全托管和全球加速。

二、私有倉庫的搭建

1. 使用Registry搭建基礎私有倉庫

1.1、新建并啟動容器

[root@localhost ~]# docker run -d -p 5000:5000 registry:2    #會自動下載和啟動一個registry容器,創建本地的私有云服務
Unable to find image 'registry:2' locally
2: Pulling from library/registry
44cf07d57ee4: Pull complete
bbbdd6c6894b: Pull complete
8e82f80af0de: Pull complete
3493bf46cdec: Pull complete
6d464ea18732: Pull complete
Digest: sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373
Status: Downloaded newer image for registry:2
8fd929126d42e2be363130e8f38087f1eb627b112c164d32f4c62b422b2b5d96
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
registry     2         26b2eb03618e   17 months ago   25.4MB

其中 -p 5000:5000 表示將容器的 5000 端口映射到主機的 5000 端口,用于訪問私有倉庫??

1.2、配置Docker客戶端信任私有倉庫:

[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://docker.nju.edu.cn"],
"insecure-registries": ["192.168.8.161:5000"]
}
#insecure-registries:指定不安全的倉庫地址,允許 Docker 客戶端通過 HTTP 協議訪問該地址[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable --now docker

1.3、 標記鏡像

[root@localhost ~]# docker tag registry:2 192.168.8.161:5000/registry:2
[root@localhost ~]# docker images
REPOSITORY                    TAG       IMAGE ID       CREATED         SIZE
192.168.8.161:5000/registry   2         26b2eb03618e   17 months ago   25.4MB
registry                      2         26b2eb03618e   17 months ago   25.4MB

1.4、將鏡像推送到私有倉庫?

[root@localhost ~]# docker push 192.168.8.161:5000/registry:2
The push refers to repository [192.168.8.161:5000/registry]
53c600587fd6: Pushed
858f5c95b990: Pushed
811f3777554a: Pushed
f646c8e10325: Pushed
f44f286046d9: Pushed
2: digest: sha256:266f282fabd7cd3df053ee7c658c77b42380d44344e33d16c5a4e58d0d5a77d7 size: 1363

1.5 、查看192.168.8.161:5000中的鏡像

[root@localhost ~]# curl http://192.168.8.161:5000/v2/_catalog
{"repositories":["registry"]}

1.6、用任意一臺能訪問到192.168.8.161地址的機器下載鏡像?

2. 使用Harbor搭建企業級私有倉庫

1、下載最新版 Docker-Compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

2、下載Harbor安裝包并解壓

[root@localhost ~]# tar xzf harbor-offline-installer-v2.6.1.tgz -C /usr/local
[root@localhost ~]# cd /usr/local/harbor/
[root@localhost harbor]# ls
common.sh             harbor.yml.tmpl  LICENSE
harbor.v2.6.1.tar.gz  install.sh       prepare

3、準備證書?

[root@localhost ~]# mkdir /data/certs
[root@localhost ~]# openssl req -newkey rsa:4096 \
> -nodes -sha256 -keyout /data/certs/admin.org.key \
> -addext "subjectAltName = DNS:www.harbor1.com" \
> -x509 -days 365 -out /data/certs/admin.org.crt
Generating a RSA private key
..............................................++++
..................................++++
writing new private key to '/data/certs/admin.org.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:80
State or Province Name (full name) []:hunan
Locality Name (eg, city) [Default City]:changsha
Organization Name (eg, company) [Default Company Ltd]:shewai
Organizational Unit Name (eg, section) []:xingong
Common Name (eg, your name or your server's hostname) []:jike
Email Address []:admin@qq.com

4、配置Harbor參數?

[root@localhost ~]# cd /usr/local/harbor/
[root@localhost harbor]# ls
common.sh             harbor.yml.tmpl  LICENSE
harbor.v2.6.1.tar.gz  install.sh       prepare
[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
[root@localhost harbor]# vim harbor.yml
#分別修改以下參數
hostname: www.harbor1.com
certificate: /data/certs/admin.org.crt
private_key: /data/certs/admin.org.key
harbor_admin_password: 123456[root@localhost harbor]# ./prepare
[root@localhost harbor]# ./install.sh 
[Step 0]: checking if docker is installed ...Note: docker version: 26.1.3

5、驗證?

[root@localhost ~]# echo "127.0.0.1 www.harbor1.com" >> /etc/hosts

瀏覽器驗證(需添加本地域名映射)?

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

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

相關文章

js的簡單介紹

一.javascript(是什么) 是一種運行在客戶端(瀏覽器)的編程語言,實現人機交互效果 作用 網頁特效(監聽客戶的一些行為讓網頁做出對應的反饋)表單驗證(針對表格數據的合法性進行判斷)數據交互(獲取后臺的數據&#xf…

k8s架構及服務詳解

目錄 1.1.容器是什么1.2.Namespace1.3.rootfs5.1.Service介紹5.1.1.Serice簡介 5.1.1.1什么是Service5.1.1.2.Service的創建5.1.1.3.檢測服務5.1.1.4.在運行的容器中遠程執行命令 5.2.連接集群外部的服務 5.2.1.介紹服務endpoint5.2.2.手動配置服務的endpoint5.2.3.為外部服務…

01. HarmonyOS應用開發實踐與技術解析

文章目錄 前言項目概述HarmonyOS應用架構項目結構Ability生命周期 ArkTS語言特性裝飾器狀態管理 UI組件與布局基礎組件響應式布局樣式與主題 頁面路由與參數傳遞頁面跳轉參數接收 數據綁定與循環渲染數據接口定義循環渲染 條件渲染組件生命周期最佳實踐與性能優化組件復用響應式…

【虛擬機 IP 配置深度剖析】

虛擬機 IP 配置深度剖析 在虛擬機的使用過程中,IP 配置猶如搭建房屋的基石,是確保虛擬機與外部網絡順暢通信、與其他設備高效交互的關鍵所在。本文將以 CentOS 虛擬機為例,深入解讀 IP 配置的奧秘。 一、認識網絡模式 ? NAT 模式&#xf…

【Python 數據結構 5.棧】

目錄 一、棧的基本概念 1.棧的概念 2.入棧 入棧的步驟 3.出棧 出棧的步驟 4.獲取棧頂元素 獲取棧頂元素的步驟 二、 Python中的棧 順序表實現 鏈表實現 三、棧的實戰 1.LCR 123. 圖書整理 I 思路與算法 2.LCR 027. 回文鏈表 思路與算法 3.1614. 括號的最大嵌套深度 思路與算法 …

Machine Learning 初探

前置知識 pandas 讀取文件:read_csv查看信息 describe:查看整體信息,包括每列的平均值、最大最小值、標準差等head:輸出頭部幾行數據columns:輸出所有列名loc:查詢數據,或是根據索引取對應的數…

2025年2月個人工作生活總結

本文為 2025年2月工作生活總結。 工作記錄 AI浪潮 AI非常火,春節至今,到處充斥著大量和AI、DeepSeek有關的新聞。領導也一再強調要用AI,甚至納入到新一年的考核里。再往上,大領導開會的新聞稿里也作出要求,不能停下腳…

SpringBoot @ConfigurationProperties 注解使用

ConfigurationProperties 用于將配置文件(如 application.properties 或 application.yml)中的屬性批量綁定到一個 Java Bean 中。 1. 定義配置文件 在 application.properties 或 application.yml 中定義一組具有相同前綴的屬性。 application.yml &a…

剛安裝docker并啟動docker服務: systemctl restart docker報錯解決

root:/home/lzw# sudo systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xeu docker.service" for details. 1、問題描述 啟動doc…

JavaScript的this指向,一次徹底講清楚

JavaScript 中的 this 指向是一個非常重要且容易混淆的概念。它的值取決于函數被調用的上下文,而不是函數定義的位置。以下是 this 指向的詳細解析: 1. 默認綁定(Default Binding) 在非嚴格模式下,如果函數是直接調用(而不是作為對象的方法或構造函數等),this 默認指向…

MFC: 控件根據文本內容大小自動調整

背景: 針對不同語言下,控件顯示不全的現象; 例如: 現象1:中文下顯示全部信息,英語下只能顯示部分文字 現象2:中文下顯示不全## 實現思路: 控件綁定按鈕計算控件文本長度根據文本長…

SpringBoot 整合mongoDB并自定義連接池,實現多數據源配置

要想在同一個springboot項目中使用多個數據源,最主要是每個數據源都有自己的mongoTemplate和MongoDbFactory。mongoTemplate和MongoDbFactory是負責對數據源進行交互的并管理鏈接的。 spring提供了一個注解EnableMongoRepositories 用來注釋在某些路徑下的MongoRepo…

軟件測試中的BUG

文章目錄 軟件測試的生命周期BugBug 的概念描述 Bug 的要素案例Bug 級別Bug 的生命周期與開發產生爭執怎么辦?【高頻面試題】先檢查自身,Bug 是否描述的不清楚站在用戶角度考慮并拋出問題Bug 的定級要有理有據提?自身技術和業務水平,做到不僅…

泵吸式激光可燃氣體監測儀:快速精準守護燃氣管網安全

在城市化進程加速的今天,燃氣泄漏、地下管網老化等問題時刻威脅著城市安全。如何實現精準、高效的可燃氣體監測,守護“城市生命線”,成為新型基礎設施建設的核心課題。泵吸式激光可燃氣體監測儀,以創新科技賦能安全監測&#xff0…

第J3-1周:DenseNet算法 實現乳腺癌識別

文章目錄 一、前言二、前期準備1.設置GPU2.劃分數據集 三、搭建網絡模型1.DenseLayer模塊2.DenseBlock模塊3.Transition模塊4.構建DenseNet5.構建densenet121 四、訓練模型1.編寫訓練函數2.編寫測試函數3.正式訓練 五、結果可視化1.Loss與Accuracy圖2.模型評估 總結&#xff1a…

【JAVA面試題】== 和 equals() 的區別與使用場景

在 Java 面試中, 和 equals() 的區別是一個高頻考點。理解它們的底層原理和使用場景,對于掌握 Java 基礎知識至關重要。本文將從 基本概念、底層實現 和 實際應用 三個方面,深入解析 和 equals() 的區別。 1. 基本概念 1.1 運算符 作用&a…

-bash: lsof: command not found

一、問題說明 執行如下命令時報錯: # lsof |grep deleted > deleted_file -bash: lsof: command not found二、處理方法 # yum -y install lsof安裝完成后可成功執行上面的命令。

攝像頭應用編程(三):多平面視頻采集

文章目錄 1、前言2、環境介紹3、步驟4、應用程序編寫5、測試5.1、編譯應用程序5.2、運行應用程序 6、總結 1、前言 在查看攝像頭類型時,大致可以分為兩類:Video Capture 和 Video Capture Multiplanar。 本次應用程序主要針對類型為Video Capture Multi…

本地部署 Traefik 的完整教程

Traefik 是一款現代化的反向代理和負載均衡工具,專為云原生環境設計。它支持自動服務發現、動態配置更新以及多種后端(如 Docker、Kubernetes、Consul 等)。本教程將指導你如何在本地部署 Traefik,并配置其作為反向代理和負載均衡器。 1. 準備工作 在開始之前,請確保你的…

三維數據可視化與表面重建:Marching Cubes算法的原理與應用

1. 引言 隨著現代醫學影像技術的飛速發展,三維數據的可視化與重建已成為醫學研究、臨床診斷和手術規劃的重要工具。在眾多三維重建算法中,Marching Cubes算法因其高效、穩定的特性成為從離散數據場中提取等值面的經典方法。本報告將深入探討Marching Cu…