【Docker】使用 Docker Registry 搭建自己的 Docker 鏡像倉庫

使用 Docker Registry 搭建自己的 Docker 鏡像倉庫

在使用 Docker 進行應用程序的開發和部署時,使用 Docker 鏡像倉庫是一個很好的實踐。它允許集中存儲和管理 Docker 鏡像,方便團隊協作和版本控制。在本文中,將介紹如何使用 Docker Registry 搭建自己的 Docker 鏡像倉庫,并提供配置文件和配置說明。

什么是 Docker Registry?

Docker Registry 是官方提供的開源鏡像倉庫軟件,它允許存儲和分發 Docker 鏡像。可以將 Docker Registry 作為私有倉庫使用,以便在內部部署和管理鏡像。

步驟一:安裝 Docker Registry

要安裝 Docker Registry,請按照以下步驟進行操作:

  1. 安裝 Docker:安裝 Docker 引擎。可以按照 Docker 官方文檔中的說明進行安裝。

  2. 配置 Docker Registry:創建一個用于存儲鏡像的目錄,例如 /var/lib/docker/registry。確保具有足夠的權限來訪問該目錄。

  3. 創建配置文件:在 /etc/docker/registry/config.yml 路徑下創建一個配置文件。可以使用以下示例作為起點:

    version: 0.1
    log:level: infoformatter: text
    storage:filesystem:rootdirectory: /var/lib/docker/registry
    

    這是一個基本的配置文件示例,指定了存儲目錄為 /var/lib/docker/registry

  4. 啟動 Docker Registry 容器:使用以下命令啟動 Docker Registry 容器,并將配置文件掛載到容器中:

    docker run -d -p 5000:5000 --restart=always --name registry \
    -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml \
    -v /var/lib/docker/registry:/var/lib/registry registry:2
    

    這將從 Docker Hub 上拉取最新的 Docker Registry 鏡像,并將容器映射到本地的 5000 端口,并將配置文件和存儲目錄掛載到容器中。

  5. 驗證安裝:使用瀏覽器訪問 http://<your-server-ip>:5000/v2/_catalog,如果能夠看到一個空的鏡像目錄,則說明 Docker Registry 安裝成功。

步驟二:上傳和下載鏡像

一旦 Docker Registry 安裝完成,可以開始上傳和下載 Docker 鏡像。

對于上傳鏡像,需要先將的鏡像打標簽為 Registry 的地址。假設的服務器 IP 地址為 your-server-ip,可以使用以下命令來打標簽:

docker tag <your-image>:<tag> <your-server-ip>:5000/<your-image>:<tag>

然后,使用以下命令將鏡像推送到 Docker Registry:

docker push <your-server-ip>:5000/<your-image>:<tag>

對于下載鏡像,可以使用以下命令從 Docker Registry 獲取鏡像:

docker pull <your-server-ip>:5000/<your-image>:<tag>

步驟三:配置 Docker 客戶端

默認情況下,Docker 客戶端不會信任非 HTTPS 的鏡像倉庫。為了能夠使用 Docker Registry,需要在 Docker 客戶端上進行一些配置。

  1. 編輯 Docker 配置文件:打開 /etc/docker/daemon.json 文件(如果不存在,請創建該文件)。

  2. 添加信任配置:在文件中添加以下內容:

    {"insecure-registries": ["<your-server-ip>:5000"]
    }
    

    替換 <your-server-ip> 為的 Docker Registry 服務器的 IP 地址。

  3. 重啟 Docker 服務:使用以下命令重啟 Docker 服務,以使配置生效:

    sudo systemctl restart docker
    

現在,應該可以使用配置好的 Docker 客戶端與 Docker Registry 進行交互。

配置文件說明

以下是 Docker Registry 配置文件的一些常見配置選項的說明:

  • version:配置文件的版本號。
  • log:用于配置日志相關的選項,如日志級別和格式化方式。
  • storage:用于配置鏡像存儲的選項。
    • filesystem:指定使用文件系統作為存儲后端。
      • rootdirectory:指定存儲鏡像的根目錄。
  • http:用于配置 HTTP 服務的選項。
    • addr:指定 HTTP 服務的地址和端口,默認為 :5000
    • headers:用于配置自定義的 HTTP 頭部。
  • https:用于配置 HTTPS 服務的選項。如果希望啟用 HTTPS 支持,可以配置以下選項:
    • addr:指定 HTTPS 服務的地址和端口,默認為 :443
    • tls:用于配置 TLS 協議的選項。
      • certificate:指定 TLS 證書的路徑。
      • key:指定 TLS 密鑰的路徑。
  • auth:用于配置身份驗證的選項。如果希望對 Docker Registry 進行身份驗證,可以配置以下選項:
    • htpasswd:指定 Htpasswd 文件的路徑。Htpasswd 文件包含用戶名和密碼的哈希值。
  • notifications:用于配置事件通知的選項。
    • endpoints:指定事件通知的目標地址。
  • health:用于配置健康檢查的選項。可以配置健康檢查的路徑和端口。
  • redis:用于配置和 Redis 數據庫的集成。可以指定 Redis 的地址和端口。

在配置文件中,可以根據實際需求進行自定義配置,例如更改存儲目錄、添加身份驗證等。

示例

以要配置刪除 Docker Registry 中鏡像的權限需要在配置文件中設置 delete 權限。配置文件中的相應配置項是 auth

auth 配置項中,可以配置不同類型的身份驗證,例如基于 Htpasswd 文件的身份驗證。可以為不同的用戶或用戶組分配不同的權限,包括刪除鏡像的權限。

以下是一個示例 auth 配置項的部分內容,演示如何配置刪除權限:

auth:htpasswd:# ...其他配置...realm: Registry Realmpath: /path/to/htpasswdaccess:- name: deleteactions: ["delete"]

在上述示例中,access 配置項定義了一個名為 delete 的權限,該權限具有 delete 操作。可以根據實際需求進行更改和擴展。

結論

通過使用 Docker Registry,可以搭建自己的 Docker 鏡像倉庫,方便存儲和管理 Docker 鏡像。使用 Docker Registry,可以輕松地上傳和下載鏡像,并與團隊成員共享和協作。

在本文中,介紹了使用 Docker Registry 搭建 Docker 鏡像倉庫的步驟,包括安裝 Docker Registry、上傳和下載鏡像、配置 Docker 客戶端以及配置文件說明。希望本文對搭建 Docker 鏡像倉庫有所幫助。

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

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

相關文章

Nginx隨筆

Nginx下載鏈接 安裝命令&#xff1a; apt update apt install nginx 一、基礎命令&#xff08;Ubuntu&#xff09; 1、在全局 nginx -t //檢查Nginx的配置文件是否有錯 systemctl start nginx //啟動Nginx systemctl stop nginx //停止Nginx systemctl status nginx //查…

【數據結構與算法——TypeScript】圖結構(Graph)

【數據結構與算法——TypeScript】 圖結構(Graph) 認識圖結構以及特性 什么是圖? 在計算機程序設計中&#xff0c;圖結構 也是一種非常常見的數據結構。 但是&#xff0c;圖論其實是一個非常大的話題 認識一下關于圖的一些內容 圖的抽象數據類型一些算法實現。 什么是圖?…

jmeter獲取mysql數據

JDBC Connection Configuration Database URL: jdbc:mysql:// 數據庫地址 /庫名 JDBC Driver class&#xff1a;com.mysql.jdbc.Driver Username&#xff1a;賬號 Password&#xff1a;密碼 JDBC Request 字段含義 字段含義 Variable Name Bound to Pool 數據庫連接池配置…

使用vue3 + ts + vite + v-md-editor 在前端頁面預覽markdown文件

1.效果預覽 2. 依賴包安裝 yarn add kangc/v-md-editornext v-md-editor中文官網&#xff1a;https://code-farmer-i.github.io/vue-markdown-editor/zh/ v-md-editor分為4種組件&#xff1a; 輕量版編輯器進階版編輯器預覽組件html預覽組件 對UI組件庫頁面&#xff0c;我只需…

問道管理:縮量小幅上漲說明什么?

股市里面&#xff0c;股票價格上漲或跌落都是常見現象。可是關于那些在商場上尋求收益的出資者來說&#xff0c;他們需要對每一個股市中的價格動搖有深化的了解&#xff0c;以便做出更正確的出資決策。最近&#xff0c;出資者們發現商場縮量小幅上漲的現象時有發生&#xff0c;…

Jmeter壓測實戰:Jmeter二次開發之自定義函數

目錄 1 前言 2 開發準備 3 自定義函數核心實現 3.1 新建項目 3.2 繼承實現AbstractFunction類 3.3 最終項目結構 4 Jmeter加載擴展包 4.1 maven構建配置 4.2 項目打包 4.3 Jmeter加載擴展包 5 自定義函數調用調試 5.1 打開Jmeter函數助手&#xff0c;選擇自定義函數…

clickhouse 刪除操作

OLAP 數據庫設計的宗旨在于分析適合一次插入多次查詢的業務場景&#xff0c;市面上成熟的 AP 數據庫在更新和刪除操作上支持的均不是很好&#xff0c;當然 clickhouse 也不例外。但是不友好不代表不支持&#xff0c;本文主要介紹在 clickhouse 中如何實現數據的刪除&#xff0c…

單鏈表相關操作(插入,刪除,查找)

通過上一節我們知道順序表的優點&#xff1a; 可隨機存儲&#xff08;O(1)&#xff09;&#xff1a;查找速度快 存儲密度高&#xff1a;每個結點只存放數據元素&#xff0c;而單鏈表除了存放數據元素之外&#xff0c;還需存儲指向下一個節點的指針 http://t.csdn.cn/p7OQf …

【2023年11月第四版教材】《第4章-信息系統管理(合集篇)》

第4章-信息系統管理之管理方法&#xff08;第四版新增章節&#xff09;&#xff08;第一部分&#xff09; 章節說明1 管理方法1.1 信息系統四個要素1.2 信息系統四大領域1.3 信息系統戰略三角1.4 信息系統架構轉換1.5 信息系統體系架構1.6 信息系統運行1.7 運行和監控1.8 管理和…

北郵鄧中亮:深度融合5G+北斗,實現高精準定位

如今&#xff0c;萬物互聯時代&#xff0c;物與物、物與人、人與人之間需要實現更多的互聯。在如此復雜多變的環境中&#xff0c;定位技術面臨著著更多挑戰和需求&#xff0c;需要不斷的創新和改進。唯有如此&#xff0c;才能滿足未來智能交通、無人駕駛和工業互聯網等領域的高…

kafka基本概念及操作

kafka介紹 Kafka是最初由Linkedin公司開發&#xff0c;是一個分布式、支持分區的&#xff08;partition&#xff09;、多副本的 &#xff08;replica&#xff09;&#xff0c;基于zookeeper協調的分布式消息系統&#xff0c;它的最大的特性就是可以實時的處理大量數據以滿足各…

【LeetCode】242 . 有效的字母異位詞

242 . 有效的字母異位詞&#xff08;簡單&#xff09; 方法&#xff1a;哈希表 思路 首先判斷兩個字符串長度是否相等&#xff0c;不相等直接返回 false&#xff1b;接下來設置一個長度為26 的哈希表&#xff0c;分別對應26個小寫字母&#xff1b;遍歷兩個字符串&#xff0c;…

Go語言工程實踐之測試與Gin項目實踐

Go 語言并發編程 及 進階與依賴管理_軟工菜雞的博客-CSDN博客 03 測試 回歸測試一般是QA(質量保證)同學手動通過終端回歸一些固定的主流程場景 集成測試是對系統功能維度做測試驗證,通過服務暴露的某個接口,進行自動化測試 而單元測試開發階段&#xff0c;開發者對單獨的函數…

day-21 代碼隨想錄算法訓練營(19)二叉樹part07

530.二叉搜索樹的最小絕對差 思路一&#xff1a;二叉搜索樹的中序遍歷必為升序數組&#xff0c;加入數組后計算相鄰兩個數差值&#xff0c;即可求出最小絕對差 思路二&#xff1a;同樣的思路&#xff0c;中序遍歷&#xff0c;直接使用指針記錄上一個節點&#xff0c;同時更新…

KAFKA第二課之生產者(面試重點)

生產者學習 1.1 生產者消息發送流程 在消息發送的過程中&#xff0c;涉及到了兩個線程——main線程和Sender線程。在main線程中創建了一個雙端隊列RecordAccumulator。main線程將消息發送給RecordAccumulator&#xff0c;Sender線程不斷從RecordAccumulator中拉取消息發送到K…

03-基礎入門-搭建安全拓展

基礎入門-搭建安全拓展 1、涉及的知識點2、常見的問題3、web權限的設置4、演示案例-環境搭建&#xff08;1&#xff09;PHPinfo&#xff08;2&#xff09;wordpress&#xff08;3&#xff09;win7虛擬機上使用iis搭建網站&#xff08;4&#xff09;Windows Server 2003配置WEB站…

C#應用處理傳入參數 - 開源研究系列文章

今天介紹關于C#的程序傳入參數的處理例子。 程序的傳入參數應用比較普遍&#xff0c;特別是一個隨操作系統啟動的程序&#xff0c;需要設置程序啟動的時候不顯示主窗體&#xff0c;而是在后臺運行&#xff0c;于是就有了傳入參數問題&#xff0c;比如傳入/h或者/min等等。所以此…

YOLO v8目標跟蹤詳細解讀(二)

上一篇&#xff0c;結合代碼&#xff0c;我們詳細的介紹了YOLOV8目標跟蹤的Pipeline。大家應該對跟蹤的流程有了大致的了解&#xff0c;下面我們將對跟蹤中出現的卡爾曼濾波進行解讀。 1.卡爾曼濾波器介紹 卡爾曼濾波&#xff08;kalman Filtering&#xff09;是一種利用線性…

歐拉OS 使用 CentOS 7 yum repo

一、下載CentOS的repo的yum文件 任何基于CentOS的yum的repo 的url是這樣的&#xff1a; 但歐拉OS輸出這個變量為&#xff1a;openEuler 20.03 (LTS-SP3) 那明顯歐拉想要使用這個yum的url找不到這個版本&#xff0c; 所以直接講這個變量替換為 7, Centos 7的7 然后執行&…

wget 詳解

wget 詳解 wget 詳解基本用法&#xff1a;命令參數&#xff1a;遞歸下載&#xff1a;斷點續傳&#xff1a;限速下載&#xff1a;后臺下載&#xff1a; 示例 wget 詳解 wget&#xff08;Web Get&#xff09;是一個用于從網絡上下載文件的命令行工具&#xff0c;常用于在 Linux …