Docker學習路線8:容器註冊表

来源:https://www.cnblogs.com/xiaowange/archive/2023/07/19/17566553.html
-Advertisement-
Play Games

**容器註冊表**是Docker容器鏡像的集中存儲和分發系統。它允許開發人員以這些鏡像的形式輕鬆共用和部署應用程式。容器註冊表在容器化應用程式的部署中發揮著關鍵作用,因為它們提供了一種快速、可靠和安全的方式,在各種生產環境中分發容器鏡像。 以下是當今流行的容器註冊表列表: - **Docker Hu ...


容器註冊表是Docker容器鏡像的集中存儲和分發系統。它允許開發人員以這些鏡像的形式輕鬆共用和部署應用程式。容器註冊表在容器化應用程式的部署中發揮著關鍵作用,因為它們提供了一種快速、可靠和安全的方式,在各種生產環境中分發容器鏡像。

以下是當今流行的容器註冊表列表:

  • Docker Hub:Docker Hub是公共Docker鏡像的預設註冊表,是開發人員之間共用和分發鏡像的平臺。
  • Google Container Registry (GCR):GCR是由Google Cloud Platform提供的托管、安全且高可用的註冊表,非常適合托管私有容器鏡像。
  • Amazon Elastic Container Registry (ECR):Amazon ECR是由Amazon Web Services提供的完全托管的Docker容器註冊表,提供高可擴展性和性能,用於存儲、管理和部署容器鏡像。
  • Azure Container Registry (ACR):ACR是由Microsoft Azure提供的托管註冊表,提供地理複製、訪問控制和與其他Azure服務的集成。

DockerHub

DockerHub 是由Docker Inc提供的基於雲的註冊服務。它是預設的公共容器註冊表,您可以在其中存儲、管理和分發Docker映像。DockerHub使其他用戶可以輕鬆找到和使用您的映像,或與Docker社區共用自己的映像。

DockerHub的功能

  • 公共和私有存儲庫: 將您的映像存儲在公共存儲庫中,所有人都可以訪問,或選擇訪問僅限於您的團隊或組織的私有存儲庫。
  • 自動構建: DockerHub與流行的代碼存儲庫(如GitHub和Bitbucket)集成,允許您為您的Docker映像設置自動構建。每當您將代碼推送到存儲庫時,DockerHub將自動創建一個具有最新更改的新映像。
  • Webhooks: DockerHub允許您配置Webhooks,以在映像構建或更新時通知其他應用程式或服務。
  • 組織和團隊: 通過創建組織和團隊來管理對您的映像和存儲庫的訪問,使協作變得容易。
  • 官方映像: DockerHub提供了一組經過篩選的官方映像,用於流行軟體,如MongoDB、Node.js、Redis等。這些映像由Docker Inc.和上游軟體供應商維護,確保它們是最新的和安全的。

要開始使用DockerHub,您需要在他們的網站上創建一個免費帳戶。一旦註冊,您可以創建存儲庫、管理組織和團隊,並瀏覽可用的映像。

當您準備分享自己的映像時,可以使用docker命令行工具將本地映像推送到DockerHub:

docker login
docker tag your-image your-username/your-repository:your-tag
docker push your-username/your-repository:your-tag

要從DockerHub拉取映像,可以使用docker pull命令:

docker pull your-username/your-repository:your-tag

DockerHub對於分發和共用Docker映像至關重要,這使得開發人員更輕鬆地部署應用程式和管理容器基礎設施。

DockerHub 替代品

在本節中,我們將討論一些流行的 DockerHub 替代品。這些替代品提供了一組不同的功能和功能,以滿足您的容器註冊表需求。瞭解這些選項將使您在選擇 Docker 映像的容器註冊表時做出更明智的決策。

Quay.io

Quay.io 是 Red Hat 的一個流行的 DockerHub 替代品,提供免費和付費計劃。它提供了高級安全功能稱為“容器安全掃描”,用於檢查存儲在您的存儲庫中的映像中的漏洞。Quay.io 還提供自動構建、細粒度用戶訪問控制和 Git 存儲庫集成等功能。

Google Container Registry (GCR)

Google Container Registry (GCR) 是 Google Cloud Platform 的一個容器註冊表服務。它提供了一個高度可擴展和安全的基礎架構,用於存儲、管理和部署 Docker 映像。GCR 提供與其他 Google Cloud 服務的集成,例如用於自動構建的 Cloud Build、Container Registry 漏洞掃描和 IAM 角色用於用戶訪問控制。

Amazon Elastic Container Registry (ECR)

Amazon Elastic Container Registry (ECR) 是由 Amazon Web Services (AWS) 提供的完全托管的 Docker 容器註冊表,簡化了存儲、管理和部署 Docker 映像的過程。使用 ECR,您可以使用 AWS Identity and Access Management (IAM) 策略控制對映像的訪問。ECR 還與 Lambda、Amazon ECS 和 ECR 映像掃描等其他 AWS 服務集成。

Azure Container Registry (ACR)

Azure Container Registry (ACR) 是 Microsoft Azure 的容器註冊表提供。它提供了廣泛的功能,包括用於高可用性的地理複製、用於自動圖像構建的 ACR 任務、用於漏洞掃描的容器掃描和與 Azure Pipelines 用於 CI/CD 的集成。ACR 還提供使用虛擬網路和防火牆的私有網路訪問。

GitHub Container Registry (GHCR)

GitHub Container Registry (GHCR) 是由 GitHub 提供的容器註冊表服務。它通過提供更流暢的管理和部署 Docker 映像的體驗,增強了 GitHub Packages 中對 Docker 的支持。GHCR 提供細粒度訪問控制、與 GitHub Actions 的無縫集成以及支持存儲公共和私有映像。

綜上所述,有幾個 DockerHub 替代品可用,每個替代品都具有不同的功能和功能。容器註冊表的選擇應基於您的要求,例如安全性、可擴展性、成本效益或與其他服務的集成。通過探索這些選項,您可以找到最適合您項目的容器註冊表。

鏡像標記最佳實踐

正確地標記您的 Docker 鏡像對於有效的容器管理和部署至關重要。

使用語義化版本控制

當標記您的鏡像時,建議遵循語義化版本控制準則。語義化版本控制是一種廣泛認可的方法,可以幫助更好地維護您的應用程式。Docker 鏡像標記應該具有以下結構<主版本號>.<次版本號>.<修訂號>。例如:3.2.1

標記最新版本

Docker 允許您在版本號外標記一個鏡像為“latest”(最新版本)。通常的做法是將最新的穩定版本標記為“latest”,以便用戶可以快速訪問,而不必指定版本號。但是,重要的是要在發佈新版本時及時更新此標記。

docker build -t your-username/app-name:latest .

描述清晰並保持一致

選擇清晰而描述性強的標記名稱,以傳達鏡像的用途或與上一個版本相比的更改。您的標記也應在鏡像和存儲庫中保持一致,以實現更好的組織和使用。

包含構建和 Git 信息(可選)

在某些情況下,將構建和 Git 提交的信息包含在鏡像標記中可能會很有幫助。這可以幫助確定用於構建鏡像的源代碼和環境。例如:app-name-1.2.3-b567-d1234efg

使用特定於環境和架構的標記

如果您的應用程式在不同的環境(生產、預發佈、開發)中部署或具有多個架構(amd64、arm64),則可以使用指定這些變化的標記。例如:your-username/app-name:1.2.3-production-amd64

需要時重新標記鏡像

有時,您可能需要在將鏡像推送到註冊表後重新標記鏡像。例如,如果您發佈了應用程式的補丁程式,您可能希望將新的補丁版本與之前版本相同的標記重新標記。這可以實現更平滑的應用程式更新,並減少需要應用補丁的用戶手動工作量。

使用自動化構建和標記工具

考慮使用 CI/CD 工具(Jenkins、GitLab CI、Travis-CI)根據提交、分支或其他規則自動化鏡像構建和標記。這可以確保一致性,並減少由手動干預引起的錯誤的可能性。

遵循這些鏡像標記的最佳實踐,可以確保為 Docker 鏡像創建更有組織性、可維護性和用戶友好的容器註冊表。

最後

為了方便其他設備和平臺的小伙伴觀看往期文章,鏈接奉上:

公眾號 Let us Coding牛客知乎開源中國CSDN思否掘金InfoQ簡書博客園慕課51CTOhelloworld騰訊開發者社區阿裡開發者社區

看完如果覺得有幫助,歡迎點贊、收藏關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Vue文件解析 什麼是<template/>標簽 template是html5新元素,主要用於保存客戶端中的內容,表現為瀏覽器解析該內容但不渲染出來,可以將一個模板視為正在被存儲以供隨後在文檔中使用的一個內容片段。 關於單文件組件 vue的單文件相當於一個頁面中的組件,包含了關於該組件的html-c ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 背景 最近有一個頁面改版的需求,在UI走查階段,設計師說原來的輪播組件和新版頁面UI整體風格不搭,所以要換掉。 這裡就涉及到兩種輪播組件,一種是傳統的輪播組件,一種是設計師要的那種。 傳統的輪播組件,大家都見過,原理也清楚,就是把要輪播的 ...
  • 好家伙,學習新工具 1.為什麼我們需要包管理器? 關於npm我們已經知道了,這是我們項目的包管理器, 我們現在用的無比順手的工具,都是在無數的競爭中殺出來的,他們淘汰了無數的產品 首先,倘若我們不使用npm,那麼我們應該如何去新建一個前端項目? 純手工,把我們項目需要的項目一個個下載到我們的項目裡面 ...
  • 一.Input中的字元串按數字規則替換 1. 包含正號,負號,小數點的浮點數 本身的正則替換是無法單次實現完美替換的, 這個方法會刪掉用於匹配的一些數字, 優點是它能保證輸入的合法性, 缺點是刪去的部分需要重新輸入 1 if (str.length 1) { 2 newStr = str.repla ...
  • # Vue引用js文件的多種方式 **1.vue-cli webpack全局引入jquery** (1)首先 npm install jquery --save (--save 的意思是將模塊安裝到項目目錄下,併在package文件的dependencies節點寫入依賴。) (2)在webpack. ...
  • ##### 什麼是JWT - JWT 是一個開放標準,它定義了一種用於簡潔,自包含的用於通信雙方之間以 JSON 對象的形式安全傳遞信息的方法。 可以使用 HMAC 演算法或者是 RSA 的公鑰密鑰對進行簽名 - **簡單來說: 就是通過一定規範來生成token,然後可以通過解密演算法逆向解密token ...
  • 日常分析數據時,只有單一數據文件的情況其實很少見,更多的情況是,我們從同一個數據來源定期或不定期的採集了很多數據文件;或者從不同的數據源採集多種不同格式的數據文件。 在這樣的情況下,分析數據之前,需要將不同的數據集合併起來。合併數據一般有兩個維度,一是同構的數據集合併後行數增加;一是異構的數據集合併 ...
  • # 1.模塊re - 以一定規則,快速檢索文本,或是實現一些替換操作 - 預設下,區分大小寫 # 2.常見的匹配字元表 | 字元 | 描述 | | : : | : : | | \d | 代表任意數字,就是阿拉伯數字 0-9 這些 | | `\D` | 代表非數字的字元。與\d完全相反 | | `\w ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...