Docker - 集線器



什麼是 Docker Hub?

Docker Hub 是一種基於雲的儲存庫服務,允許使用者儲存、共享和管理 Docker 容器映象。它由 Docker 提供。開發人員可以使用廣泛使用的 Docker 平臺將他們的應用程式及其依賴項打包到輕量級、可移植的容器中。由於這些容器可以在各種環境中一致地執行,因此應用程式可以更輕鬆地部署和擴充套件。

從根本上說,Docker Hub 是一箇中心位置,Docker 使用者可以在其中查詢、共享和協作處理容器化應用程式。它託管了一個龐大的預構建 Docker 映象庫,其中包含資料庫、Web 伺服器、程式語言以及大量其他軟體和服務。

使用者可以使用單個命令根據特定標準(如功能、作業系統版本或搜尋詞)查詢映象,然後將這些映象提取到其本地環境中。

Docker Hub 1

Docker Hub 的功能和優勢

Docker Hub 是一種由 Docker 提供的基於雲的儲存庫服務,它具有大量功能。這些功能旨在簡化容器化應用程式的建立、實現和管理。

Docker Hub 是 Docker 使用者的全球中心,它可以提高生產力、確保安全性和簡化跨容器生命週期的協作。以下是 Docker Hub 的一些功能和優勢。

  • 集中式儲存庫 - Docker Hub 允許您搜尋、訪問和共享容器化應用程式和服務。由於它是 Docker 容器映象的中央儲存庫,因此它充當了單一事實來源。
  • 龐大的映象庫 - 它提供對大量預構建 Docker 映象的訪問。這包括流行的 Web 伺服器、資料庫、程式語言和框架,以及其他軟體和服務。您無需從頭開始。您只需在此龐大的集合中找到並選擇滿足您獨特需求的映象即可。
  • 開放協作 - Docker Hub 促進了開放協作的環境。它允許開發人員與社群共享他們自己的 Docker 映象。您可以構建並改進彼此的工作。這促進了知識共享並加快了開發週期。
  • 自動化工具 - 它提供用於自動化構建、測試和部署 Docker 映象的工具。這包括與 CI/CD 管道整合以實現順暢的持續整合和交付工作流程的功能。此外,它還支援自動構建,這些構建會在每次將更改推送到儲存庫時自動啟動構建。
  • 版本控制和標記 - Docker Hub 允許對 Docker 映象進行版本控制和標記。這簡化了隨著時間的推移管理和跟蹤服務的各種迭代或應用程式的過程。這使得在必要時更容易回滾到早期版本,並確保跨各種環境的一致性和可重複性。
  • 訪問控制和許可權 - Docker Hub 有一些強大的功能來管理訪問控制和許可權。這使企業能夠控制誰可以檢視、編輯和共享 Docker 映象。這對於處理機密或專有應用程式的團隊尤其有用,因為它有助於確保容器化部署的安全性和完整性。
  • 可擴充套件性和效能 - Docker Hub 作為一項基於雲的服務,提供高效能基礎設施和可擴充套件性來託管和分發 Docker 映象。這確保了可靠且快速的訪問容器映象,無論儲存庫的大小或受歡迎程度如何。
  • 與 Docker 生態系統的整合 - 它透過與更大的 Docker 生態系統(包括 Docker Engine、Docker Compose 和 Docker Swarm)無縫整合,提供了一個統一的平臺來開發、啟動和監視容器化應用程式,從開發到生產。

如何建立 Docker Hub 儲存庫?

建立 Docker Hub 儲存庫非常簡單。這是一個基本指南 -

步驟 1:登入 Docker Hub

訪問 https://hub.docker.com/ 建立 Docker Hub 帳戶並使用您的憑據登入。

Docker Hub 2

步驟 2:建立新的儲存庫

完成註冊過程後,您將被重定向到您的 Docker Hub 儀表板。您可以在此處管理您的儲存庫、映象和帳戶設定。

要建立新的儲存庫,請單擊選單欄中的“儲存庫”,然後單擊儀表板右上角的“建立儲存庫”按鈕。

Docker Hub 3

步驟 3:選擇儲存庫可見性和詳細資訊

在這裡,您可以提供儲存庫名稱、詳細資訊和儲存庫的可見性。公共儲存庫對所有人可見。另一方面,私有儲存庫僅限授權使用者訪問。

Docker Hub 4

步驟 4:儲存並建立儲存庫

您可以單擊“建立”或“儲存”按鈕來建立您的儲存庫。建立儲存庫後,您可以從您的 Docker Hub 儀表板訪問它。您可以在此處配置構建、Webhook、標籤和其他設定。

Docker Hub 5

如何將映象推送到或從 Docker Hub 中拉取?

您可以使用 Docker 命令將 Docker 映象推送到 Docker Hub 儲存庫或從其中拉取。以下是如何操作 -

將映象推送到 Docker Hub

在本節中,讓我們看看如何將映象推送到 Docker Hub -

步驟 1:標記您的映象

在將映象推送到 Docker Hub 之前,您應該確保它已使用儲存庫名稱和版本正確標記。

這裡,我們將使用 Docker Hub 公共儲存庫中的“hello-world”映象作為參考。您可以使用以下命令標記映象 -

$ docker pull hello-world
$ docker images
$ docker tag <image_id> <username/repository_name:tag>
Docker Hub 6

步驟 2:登入 Docker Hub

在您能夠從您的私有儲存庫中拉取或推送映象之前,您必須使用命令列登入 Docker Hub。您可以使用 docker login 命令使用您的 Docker Hub 使用者名稱和密碼進行 Docker Hub 身份驗證。

$ docker login
Docker Hub 7

步驟 3:推送映象

現在您已登入,您可以使用 docker push 命令將標記的映象推送到 Docker Hub。

$ docker push <username/repository_name:tag>
Docker Hub 8

您可以在 Docker Hub 儲存庫中驗證已推送的映象。

Docker Hub 9

從 Docker Hub 拉取映象

您可以使用 Docker 的pull 命令從 Docker Hub 拉取映象。

$ docker pull <username/repository_name:tag>
$ docker images
Docker Hub 10

Docker Hub 的關鍵元件

Docker Hub 是一個全面的平臺,具有一組關鍵元件,可以改進 Docker 映象的自動化、安全性和管理。下面概述了一些關鍵要素 -

  • 儲存庫 - 儲存庫是 Docker 映象的儲存單元。使用者可以在這些組織單元中儲存、管理和共享其映象。公共儲存庫對公眾開放,而私有儲存庫僅供授權使用者訪問。
  • Webhook - Webhook 允許對儲存庫中發生的事件做出自動響應。使用者可以設定 Webhook 以觸發特定事件(例如映象推送或更新)以啟動構建過程、傳送通知或執行其他操作。
  • 服務帳戶 - 服務帳戶是用於對 Docker Hub 服務和 API 進行身份驗證和授予訪問許可權的。它們使自動化過程(例如 CI/CD 管道或外部工具)能夠安全地與 Docker Hub 通訊,而無需人工干預。
  • 漏洞掃描 - Docker Hub 提供漏洞掃描功能來查詢 Docker 映象中的安全漏洞。此功能透過掃描映象中依賴項中的已知漏洞並提供有用的見解來幫助使用者降低潛在的安全風險。
  • 映象複製 - 使用此技術,組織可以將其 Docker Hub 儲存庫映象到其自己的私有基礎設施或內部登錄檔中。這降低了延遲,確保了可靠的映象訪問,並使組織的網路管理員能夠控制映象的分發方式。
  • 自動構建 - 自動構建透過在每次將更改推送到連結的儲存庫時自動啟動構建來簡化建立 Docker 映象的過程。此功能透過消除人工干預來確保映象持續構建並使用最新修改進行更新。
  • 使用者介面 (UI) 和 API - Docker Hub 提供了一個直觀的 Web 介面,用於與儲存庫互動、管理映象和執行管理任務。此外,Docker Hub 還提供了一個強大的 API,用於以程式設計方式訪問其功能,從而可以輕鬆地與外部工具和自動化流程整合。

結論

總而言之,Docker Hub 對於尋找有效方法來管理其 Docker 容器映象的開發人員和企業來說,是一個必不可少的資源。Docker Hub 透過提供一個集中式儲存庫,使儲存、共享和分發容器化應用程式和服務變得更加容易。

它提供了許多功能,例如漏洞掃描、Webhook 整合和自動化構建。它簡化了開發和部署流程,同時保持安全性和合規性。它擁有強大的 API 和直觀的介面,用於處理儲存庫和映象,無論您是將其提取用於本地開發還是將其推送到儲存庫以進行部署。

常見問題

Q1. 什麼是 Docker 登錄檔?

Docker 登錄檔是 Docker 映象的儲存單元。它們充當儲存、管理和訪問 Docker 映象的地方。它們充當容器化服務和應用程式分發的集中式中心,使開發人員能夠在不同的環境之間分發或共享映象。組織可以建立自己的私有登錄檔供內部使用,儘管 Docker Hub 是最廣泛使用的 Docker 登錄檔之一。

Q2. Docker Hub 是免費的嗎?

Docker Hub 提供高階和免費計劃。使用者可以使用免費計劃儲存無限數量的公共映象並建立公共儲存庫。但是,映象拉取次數和私有儲存庫的數量受到限制。

對於需要額外功能(如更多儲存空間、私有儲存庫和增強的安全性)的使用者,Docker Hub 提供了不同定價層級的付費訂閱計劃。

Q3. Docker Hub 中的儲存庫是什麼?

儲存庫是 Docker Hub 中用於儲存 Docker 映象的組織單元。一個儲存庫中可能有多個映象版本,每個版本都由唯一的版本號標識。

公共儲存庫對公眾開放,而私有儲存庫僅供授權使用者訪問。儲存庫可以分類為公共或私有。使用者可以根據其專案或應用程式的需求建立、管理和共享儲存庫。

Q4. Docker Hub 的其他替代方案是什麼?

市場上有幾種 Docker Hub 的替代方案可用。使用者可以使用 GitHub 容器登錄檔 (GHCR) 將 Docker 映象直接儲存和管理在 GitHub 儲存庫中。您還可以使用 Amazon Elastic Container Registry (ECR),這是 AWS 提供的完全託管的 Docker 容器登錄檔服務。

Google Cloud Platform (GCP) 提供 Docker 容器登錄檔服務 Google Container Registry (GCR)。Harbor 還可以作為容器的開源登錄檔,提供漏洞掃描和基於角色的訪問控制等高階功能。

廣告